Git ile 2.3.2+ (Q1 2015), Git olacak bir başka durum var değil artık sembolik izleyin: bkz e0d201b taahhüt tarafından Junio C Hamano ( gitster
) (ana Git sürdürme)
apply
: sembolik bağlantının ötesindeki bir dosyaya dokunma
Git sembolik bağlantıları sembolik bağlantılar olarak izlediğinden, ön kısmında sembolik bir bağlantı bulunan bir yol (örneğin path/to/dir/file
, path/to/dir
çalışma ağacının içinde veya dışında başka bir yere sembolik bir bağlantı olduğu), geçerli olarak geçerli olan bir yamada asla görünemez , aynı yama ilk olarak orada bir dizinin oluşturulmasına izin vermek için sembolik bağlantıyı kaldırmazsa.
Böyle bir yamayı tespit edin ve reddedin.
Benzer şekilde, bir girdi sembolik bir bağlantı path/to/dir
oluşturup daha sonra bir dosya path/to/dir/file
oluşturduğunda path/to/dir
, dosya sisteminde gerçekten sembolik bir bağlantı oluşturmadan bunu bir hata olarak işaretlememiz gerekir .
Bunun yerine, girişte sonuçta bir yol bırakan (yani silinmeyen) herhangi bir yama için, girişteki tüm yamaları ve daha sonra yamanın hedefini inceleyerek, yamanın oluşturduğu ağaca karşı tüm önde gelen yolları kontrol ederiz. uygulama (dizin veya çalışma ağacı).
Bu şekilde:
- aynı anda sembolik bir bağlantı
path/to/dir
ve bir dosya eklemek için bir yaramazlık veya hata yakalayın path/to/dir/file
,
- bir sembolik olan
link path/to/dir
ve daha sonra bir dosya ekleyen geçerli bir yamaya izin verir path/to/dir/file
.
Bu, bu durumda, hata mesajının genel bir mesaj değil "%s: patch does not apply"
, daha spesifik bir mesaj olduğu anlamına gelir :
affected file '%s' is beyond a symbolic link