Aracılığıyla paylaş


SccDiff işlevi

Bu işlev, geçerli dosya (yerel diskte) ile kaynak denetim sistemindeki son iade edilmiş sürümü arasındaki farkları görüntüler (veya isteğe bağlı olarak yalnızca denetler).

Sözdizimi

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

Parametreler

pvContext

[in] Kaynak denetimi eklentisi bağlam yapısı.

Hwnd

[in] Kaynak denetimi eklentisinin sağladığı iletişim kutuları için üst öğe olarak kullanabileceği IDE penceresinin tanıtıcısı.

lpFileName

[in] Farkın istendiği dosya adı.

fOptions

[in] Komut bayrakları. Ayrıntılar için bkz. Açıklamalar.

pvOptions

[in] Kaynak denetimi eklentisine özgü seçenekler.

Dönüş değeri

Bu işlevin kaynak denetimi eklentisinin aşağıdaki değerlerden birini döndürmesi beklenir:

Value Açıklama
SCC_OK Çalışan kopya ve sunucu sürümü aynıdır.
SCC_I_FILESDIFFERS Çalışan kopya, kaynak denetimi altındaki sürümden farklıdır.
SCC_I_RELOADFILE Bir dosya veya projenin yeniden yüklenmesi gerekir.
SCC_E_FILENOTCONTROLLED Dosya kaynak denetimi altında değil.
SCC_E_NOTAUTHORIZED Kullanıcının bu işlemi gerçekleştirmesine izin verilmiyor.
SCC_E_ACCESSFAILURE Büyük olasılıkla ağ veya çekişme sorunlarından dolayı kaynak denetim sistemine erişilirken bir sorun oluştu. Yeniden deneme önerilir.
SCC_E_NONSPECIFICERROR Özel olmayan hata; dosya farkı elde edilemedi.
SCC_E_FILENOTEXIST Yerel dosya bulunamadı.

Açıklamalar

Bu işlev iki farklı amaca hizmet eder. Varsayılan olarak, dosyada yapılan değişikliklerin listesini görüntüler. Kaynak denetimi eklentisi, kullanıcının diskteki dosyasıyla dosyanın en son sürümü arasındaki farkları kaynak denetimi altında görüntülemek için kendi penceresini açar.

Alternatif olarak, IDE'nin yalnızca bir dosyanın değişip değişmediğini belirlemesi gerekebilir. Örneğin, IDE'nin kullanıcıyı bilgilendirmeden bir dosyayı kullanıma almanın güvenli olup olmadığını belirlemesi gerekebilir. Bu durumda, IDE bayrağını SCC_DIFF_CONTENTS geçirir. Kaynak denetimi eklentisi, diskteki dosyayı kaynak denetimli dosyaya göre bayt bayt denetlemeli ve kullanıcıya hiçbir şey görüntülemeden iki dosyanın farklı olup olmadığını belirten bir değer döndürmelidir.

Performans iyileştirmesi olarak, kaynak denetimi eklentisi tarafından çağrılan SCC_DIFF_CONTENTSbayt bayt karşılaştırması yerine sağlama toplamına veya zaman damgasına dayalı bir alternatif kullanabilir: bu karşılaştırma biçimleri açıkça daha hızlıdır ancak daha az güvenilirdir. Tüm kaynak denetim sistemleri bu alternatif karşılaştırma yöntemlerini desteklemeyebilir ve eklentinin bir içerik karşılaştırmasına geri dönmesi gerekebilir. Tüm kaynak denetimi eklentilerinin en azından içerik karşılaştırmayı desteklemesi gerekir.

Not

Hızlı fark bayrakları birbirini dışlar. Bayrak geçirmek geçerli değildir, ancak aynı anda birden fazla bayrak geçirmek geçerli değildir. SCC_DIFF_QUICK_DIFF, tüm bayrakları birleştiren bir maskedir, test etmek için kullanılabilir, ancak hiçbir zaman parametre olarak geçirilmemelidir.

fOption Anlamı
SCC_DIFF_IGNORECASE Büyük/küçük harfe duyarlı olmayan karşılaştırma (hızlı veya görsel fark için kullanılabilir).
SCC_DIFF_IGNORESPACE Boşluğu yoksayar (hızlı veya görsel fark için kullanılabilir).
SCC_DIFF_QD_CONTENTS Dosyayı sessizce bayt bayt karşılaştırır.
SCC_DIFF_QD_CHECKSUM Desteklendiğinde dosyayı bir sağlama toplamı aracılığıyla sessizce karşılaştırır. Desteklenmiyorsa, içindekiler karşılaştırmasına geri döner.
SCC_DIFF_QD_TIME Desteklendiğinde dosyayı zaman damgası aracılığıyla sessizce karşılaştırır. Desteklenmiyorsa, içindekiler karşılaştırmasına geri döner.

Ayrıca bkz.