Svn eklemenin doğru yolu: çalıştırılabilir


107

Eklemeden önce çalıştırılabilir birkaç dosyam var. Svn: çalıştırılabilir özellik kümesine sahipler. Şimdi, çalıştırılabilir bit olmadan başka birkaç dosya teslim edildi ve svn: yürütülebilir özelliğini ayarlamak istiyorum:

$ svn propset svn:executable on *.cgi

Sonra durumu kontrol ederim ve hatta svn: çalıştırılabilir dosyalar değiştirildi:

$ svn diff
Property changes on: a.cgi
___________________________________________________________________
Modified: svn:executable
   - 
   + *


Property changes on: b.cgi
___________________________________________________________________
Added: svn:executable
   + *

a.cgi değiştirilmemelidir. Svn: çalıştırılabilir biti diğer dosyalarda olduğu gibi ayarlanacak şekilde eklemek istiyorum, ancak bunu yapmak için komutu bulamıyorum.


2
Bu sayfayı her yazmak istemediğimde açıyorum svn propset svn:executable on (...). Ve sorunun cevabı olmalı for f in *.cgi; do if [ ! -x $f ]; then svn ps (...); fi; doneve sadece değiştirilmiş dosyaları teslim etmelidir . Sonra devam edin.
Tomasz Gandor

@TomaszGandor svn:executableİkinci pasajda bir yerlerde eksik olduğunuzu düşünün . Belki svn ps svn:executable on $f;?
Keith M

1
en.wikipedia.org/wiki/Ellipsis_(linguistics) - evet, okuyucuya alıştırma olarak bırakıldı.
Tomasz Gandor

Yanıtlar:


166

Svn özellik düzenleme komutlarını kullanmakta haklısınız. Özellik svn'dir: çalıştırılabilir.

Svn'ye "yürütülebilir bit" eklemek için

svn propset svn:executable on <list of files>

Svn'deki "yürütülebilir biti" kaldırmak için

svn propdel svn:executable <list of files>

Bunun için SVN belgeleri burada bulunur.

Yürütülebilir dosyaları değiştirmediğiniz sürece, yürütülebilir dosyayı değiştirmiyorsunuz (bir sağlama toplamı bunu doğrulayacaktır), ancak SVN deposunu değiştiriyorsunuz. Unutmayın ki SVN revizyonları dosya sistemlerini, sadece dosyaları değil; bu nedenle, izin bitlerinde yapılan bir değişiklik, yalnızca bir dosyanın özelliklerinin bir değişikliği (ve dosyanın kendisinin bir değişikliği değil) olsa bile, SVN revizyon numarasını artıracaktır.


Svn propset'i yukarıda gösterildiği şekilde çalıştırdığımda, onları "*" olarak ayarlıyor ama doğal yol svn: çalıştırılabilir'i hiçbir şeye ayarlıyor, ancak hala ayarlanmış. Bu özelliğin, çalıştırılabilir biti onları subversion'a eklemeden önce ayarlanmış olanlarla aynı olmasını istiyorum.
Jake

2
Tüm düzenlemeler için özür dilerim, ancak doğru bir şekilde hatırlarsam, herhangi bir şeye ayarlanmış olması çalıştırılabilir biti açacak, onu silmek (ve muhtemelen boş veya boşluk olarak ayarlamak) onu kapatacaktır. SVN istemcinizin kullandığı değeri elde etmek için bir svn propget kullanılabilir.
Edwin Buck

-2

Projemde üzerinde çalıştırma biti ayarlı olan tüm * .py dosyalarında yürütülebilir özelliği nasıl ayarladığımı burada görebilirsiniz. Bunu en üst düzey dizinden yürütüyorum

for f in `find ./ -name '*.py'`; do echo $f; if [ -x $f ]; then echo $f 'is executable setting svn:executable'; svn propset svn:executable on $f; else echo $f 'is not executable'; fi; done;

Propset kullanmadan çalıştırılabilir öznitelik nasıl ayarlanır? Ben kullanmadım ve bildiğim kadarıyla kimse de kullanmadı. Aynı dizindeki ve başka hiçbir yerde olmayan üç dosyada görünür ve bu dosyalar hakkında özel bir şey yok gibi görünüyor. (Bunlar java dosyaları, sh veya exe veya bat veya jar veya her neyse değil.)
Jerry Miller

Dosyanın başlangıçta içe aktarıldığında çalıştırılabilir bit setine sahip olması halinde svn çalıştırılabilir özelliğinin ayarlanacağına inanıyorum.
Isaac Jessop

kesinlikle find'ın -perm anahtarına sahip olması, eğer / o zaman'dan biraz daha zarif olabilir, ancak elbette hatırlanması daha fazla olacaktır
Never Sleep Again
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.