Subversion verfügt ab Februar 2016 / Version 1.9 nicht über die integrierte Funktion "Nicht festschreiben" / "Beim Festschreiben ignorieren". Diese Antwort ist eine nicht ideale Problemumgehung für die Befehlszeile
Wie im OP angegeben, verfügt TortoiseSVN über eine integrierte Änderungsliste "Ignorieren beim Festschreiben", die automatisch von Festschreibungen ausgeschlossen wird. Der Befehlszeilenclient verfügt nicht über diese Option. Sie müssen daher mehrere Änderungslisten verwenden, um dasselbe Verhalten (mit Einschränkungen) zu erzielen :
- eine für die Arbeit, die Sie begehen möchten [Arbeit]
- eine für Dinge, die Sie ignorieren möchten [ignore-on-commit]
Da es bei TortoiseSVN einen Präzedenzfall gibt, verwende ich in meinen Beispielen "Ignorieren beim Festschreiben" für die Dateien, die ich nicht festschreiben möchte. Ich werde "Arbeit" für die Dateien verwenden, die ich mache, aber Sie können jeden gewünschten Namen auswählen.
Fügen Sie zunächst alle Dateien zu einer Änderungsliste mit dem Namen "work" hinzu. Dies muss vom Stammverzeichnis Ihrer Arbeitskopie ausgeführt werden:
svn cl work . -R
Dadurch werden alle Dateien in der Arbeitskopie rekursiv zur Änderungsliste mit dem Namen "Arbeit" hinzugefügt. Dies hat einen Nachteil: Wenn der Arbeitskopie neue Dateien hinzugefügt werden, müssen Sie die neuen Dateien speziell hinzufügen, da sie sonst nicht enthalten sind. Zweitens, wenn Sie dies erneut ausführen müssen, müssen Sie alle Ihre "Ignor-on-Commit" -Dateien erneut hinzufügen. Nicht ideal - Sie könnten anfangen, Ihre eigene "Ignorier" -Liste in einer Datei zu verwalten, wie es andere getan haben.
Dann für die Dateien, die Sie ausschließen möchten:
svn cl ignore-on-commit path\to\file-to-ignore
Da sich Dateien nur in einer Änderungsliste befinden können, wird durch Ausführen dieses Zusatzes nach dem vorherigen Hinzufügen von "Arbeit" die Datei, die Sie ignorieren möchten, aus der Änderungsliste "Arbeit" entfernt und in die Änderungsliste "Ignorieren bei Festschreiben" eingefügt.
Wenn Sie bereit sind, Ihre geänderten Dateien festzuschreiben, die Sie festschreiben möchten, fügen Sie Ihrem Festschreiben einfach "--cl work" hinzu:
svn commit --cl work -m "message"
So sieht ein einfaches Beispiel auf meinem Computer aus:
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.
Eine Alternative wäre, einfach jede Datei, die Sie festschreiben möchten, zu einer 'Arbeits'-Änderungsliste hinzuzufügen und nicht einmal eine Ignorierliste zu führen, aber dies ist auch eine Menge Arbeit. Die einzig einfache und ideale Lösung besteht darin, ob / wann dies in SVN selbst implementiert wird. Es gibt ein langjähriges Problem im Subversion Issue Tracker SVN-2858 , falls sich dies in Zukunft ändert.