Subversion, Şubat 2016 / sürüm 1.9 itibariyle yerleşik bir "taahhüt etme" / "taahhütte yoksay" özelliğine sahip değildir. Bu yanıt ideal olmayan bir komut satırı geçici çözümdür
OP'nin belirttiği gibi, TortoiseSVN, otomatik olarak taahhütlerden hariç tutulan yerleşik bir “değişmezde yoksay” özelliğine sahiptir. Komut satırı istemcisi buna sahip olmadığından, aynı davranışı (uyarılarla) gerçekleştirmek için birden fazla değişiklik listesi kullanmanız gerekir :
- biri çalışmak istediğiniz iş için [iş]
- biri yoksaymak istediğiniz şeyler için [taahhütte yoksay]
TortoiseSVN'de emsal teşkil ettiğinden, örneklerinde taahhüt etmek istemediğim dosyalar için "taahhütte yoksay" ı kullanıyorum. Yaptığım dosyalar için "iş" kullanacağım, ancak istediğiniz herhangi bir ismi seçebilirsiniz.
İlk olarak, tüm dosyaları "work" adlı bir değiştiriciye ekleyin. Bu, çalışan kopyanızın kökünden çalıştırılmalıdır:
svn cl work . -R
Bu, çalışma kopyasındaki tüm dosyaları "iş" adlı değiştiriciye özyinelemeli olarak ekler. Bunun bir dezavantajı var - çalışan kopyaya yeni dosyalar eklendiğinden, özellikle yeni dosyaları eklemeniz gerekir, aksi takdirde bunlar dahil edilmez. İkinci olarak, bunu tekrar çalıştırmanız gerekiyorsa, tüm "taahhütte yoksay" dosyalarınızı tekrar eklemeniz gerekir. İdeal değil - başkalarının yaptığı gibi bir dosyada kendi 'yoksay' listenizi korumaya başlayabilirsiniz.
Ardından, hariç tutmak istediğiniz dosyalar için:
svn cl ignore-on-commit path\to\file-to-ignore
Dosyalar yalnızca bir değiştirici içinde olabileceğinden, önceki "iş" eklemenizden sonra bu eklentiyi çalıştırmak "iş" değiştiricisinden yoksaymak istediğiniz dosyayı kaldıracak ve "işleyişte yoksay" değiştiricisine koyacaktır.
Taahhüt etmek istediğiniz değiştirilmiş dosyalarınızı yürütmeye hazır olduğunuzda, taahhüdünüze "--cl work" eklemeniz yeterlidir:
svn commit --cl work -m "message"
İşte makinemde basit bir örnek şöyle:
D:\workspace\trunk>svn cl work . -R
Skipped '.'
Skipped 'src'
Skipped 'src\conf'
A [work] src\conf\db.properties
Skipped 'src\java'
Skipped 'src\java\com'
Skipped 'src\java\com\corp'
Skipped 'src\java\com\corp\sample'
A [work] src\java\com\corp\sample\Main.java
Skipped 'src\java\com\corp\sample\controller'
A [work] src\java\com\corp\sample\controller\Controller.java
Skipped 'src\java\com\corp\sample\model'
A [work] src\java\com\corp\sample\model\Model.java
Skipped 'src\java\com\corp\sample\view'
A [work] src\java\com\corp\sample\view\View.java
Skipped 'src\resource'
A [work] src\resource\icon.ico
Skipped 'src\test'
D:\workspace\trunk>svn cl ignore-on-commit src\conf\db.properties
D [work] src\conf\db.properties
A [ignore-on-commit] src\conf\db.properties
D:\workspace\trunk>svn status
--- Changelist 'work':
src\java\com\corp\sample\Main.java
src\java\com\corp\sample\controller\Controller.java
src\java\com\corp\sample\model\Model.java
M src\java\com\corp\sample\view\View.java
src\resource\icon.ico
--- Changelist 'ignore-on-commit':
M src\conf\db.properties
D:\workspace\trunk>svn commit --cl work -m "fixed refresh issue"
Sending src\java\com\corp\sample\view\View.java
Transmitting file data .done
Committing transaction...
Committed revision 9.
Bir alternatif, basitçe bir 'çalışma' değiştiricisine taahhüt etmek istediğiniz her dosyayı eklemek ve hatta bir yok sayma listesi tutmamaktır, ancak bu da çok iştir. Gerçekten, tek basit, ideal çözüm, SVN'nin kendisinde uygulanıp uygulanmadığıdır. Bu konuda, Subversion sayı izleyicisi SVN-2858'de , gelecekte değişmesi durumunda uzun süredir devam eden bir sorun var .