Fungsi SccDiff

Fungsi ini menampilkan (atau secara opsional hanya memeriksa) perbedaan antara file saat ini (pada disk lokal) dan versi terakhir yang diperiksa dalam sistem kontrol sumber.

Sintaks

SCCRTN SccDiff(
   LPVOID    pvContext,
   HWND      hWnd,
   LPCSTR    lpFileName,
   LONG      fOptions,
   LPCMDOPTS pvOptions
);

Parameter

pvContext

[di] Struktur konteks plug-in kontrol sumber.

hWnd

[di] Handel ke jendela IDE yang dapat digunakan plug-in kontrol sumber sebagai induk untuk kotak dialog apa pun yang disediakannya.

lpFileName

[di] Nama file yang perbedaannya diminta.

fOptions

[di] Bendera perintah. Lihat Keterangan untuk detailnya.

pvOptions

[di] Opsi khusus plug-in kontrol sumber.

Nilai hasil

Implementasi plug-in kontrol sumber dari fungsi ini diharapkan mengembalikan salah satu nilai berikut:

Nilai Deskripsi
SCC_OK Salinan yang berfungsi dan versi server identik.
SCC_I_FILESDIFFERS Salinan kerja berbeda dari versi di bawah kontrol sumber.
SCC_I_RELOADFILE File atau proyek perlu dimuat ulang.
SCC_E_FILENOTCONTROLLED File tidak berada di bawah kontrol sumber.
SCC_E_NOTAUTHORIZED Pengguna tidak diizinkan untuk melakukan operasi ini.
SCC_E_ACCESSFAILURE Ada masalah saat mengakses sistem kontrol sumber, mungkin karena masalah jaringan atau pertikaian. Coba lagi disarankan.
SCC_E_NONSPECIFICERROR Kegagalan nonspesfik; perbedaan file tidak diperoleh.
SCC_E_FILENOTEXIST File lokal tidak ditemukan.

Keterangan

Fungsi ini melayani dua tujuan yang berbeda. Secara default, ini menampilkan daftar perubahan pada file. Plug-in kontrol sumber membuka jendelanya sendiri, dalam format apa pun yang dipilihnya, untuk menampilkan perbedaan antara file pengguna pada disk dan versi terbaru file di bawah kontrol sumber.

Atau, IDE mungkin hanya perlu menentukan apakah file telah berubah. Misalnya, IDE mungkin perlu menentukan apakah aman untuk memeriksa file tanpa memberi tahu pengguna. Dalam hal ini, IDE meneruskan SCC_DIFF_CONTENTS bendera. Plug-in kontrol sumber harus memeriksa file pada disk, byte byte, terhadap file yang dikontrol sumber dan mengembalikan nilai yang menunjukkan apakah kedua file berbeda tanpa menampilkan apa pun kepada pengguna.

Sebagai pengoptimalan performa, plug-in kontrol sumber dapat menggunakan alternatif berdasarkan checksum atau tanda waktu alih-alih perbandingan byte-byte yang dipanggil oleh SCC_DIFF_CONTENTS: bentuk perbandingan ini jelas lebih cepat tetapi kurang dapat diandalkan. Tidak semua sistem kontrol sumber dapat mendukung metode perbandingan alternatif ini, dan plug-in mungkin harus kembali ke perbandingan konten. Semua plug-in kontrol sumber harus, minimal, mendukung perbandingan konten.

Catatan

Bendera perbedaan cepat saling eksklusif. Ini berlaku untuk tidak meneruskan bendera, tetapi tidak valid untuk secara bersamaan meneruskan lebih dari satu bendera. SCC_DIFF_QUICK_DIFF, yang merupakan masker yang menggabungkan semua bendera, dapat digunakan untuk menguji, tetapi tidak boleh diteruskan sebagai parameter.

fOption Makna
SCC_DIFF_IGNORECASE Perbandingan yang tidak peka huruf besar/kecil (dapat digunakan untuk perbedaan cepat atau visual).
SCC_DIFF_IGNORESPACE Mengabaikan spasi kosong (dapat digunakan untuk perbedaan cepat atau visual).
SCC_DIFF_QD_CONTENTS Secara diam-diam membandingkan file, byte byte.
SCC_DIFF_QD_CHECKSUM Membandingkan file secara diam-diam melalui checksum saat didukung. Jika tidak didukung, kembali ke perbandingan konten.
SCC_DIFF_QD_TIME Secara diam-diam membandingkan file melalui tanda waktunya ketika didukung. Jika tidak didukung, kembali ke perbandingan konten.

Baca juga