SVN - So legen Sie mehrere Dateien auf einmal fest

104

Ich habe versucht, mehrere Dateien in verschiedenen Verzeichnissen in einer einzigen Aufnahme wie unten beschrieben festzuschreiben.

svn commit –m”log msg” mydir/dir1/file1.c mydir/dir2/myfile1.h mydir/dir3/myfile3.c etc etc

Seitdem wollte ich einige Dateien von der Festschreibungsliste ausschließen, also habe ich jeden Dateinamen wie oben in der Befehlszeile platziert. Ich habe es im Notizblock zusammengestellt und es kamen ungefähr 25 Dateien. Wenn ich es kopiere und in die Befehlszeile einfüge, fehlen die letzten Dateien, und ich denke, dies ist möglicherweise eine Einschränkung des Befehlszeilenpuffers (?). Gibt es eine Option, mit der ich die Pufferlänge erhöhen kann?

Gibt es eine Option, mit der ich alle Dateien in eine Textdatei einfügen und als Argument für svn commit angeben kann?

Thi
quelle
8
@Thi - Diejenigen, die keine GUI für Subversion verwenden, sind Masochisten. Holen Sie sich Tortoise SVN oder ein Linux-Äquivalent.
tpow
1
Wenn die Pufferlänge eingeschränkt ist, befindet sie sich nicht in SVN, sondern in der von Ihnen verwendeten Shell.
Colin Fine
20
@cinquTimo: Vielleicht bevorzugen Sie es, für alles eine GUI zu verwenden. Andere Leute nicht.
Colin Fine
@Colin, ich denke schon, wie kann man in diesem Fall die Shell-Pufferlänge erhöhen?
Thi
3
"Diejenigen, die keine GUI für Subversion verwenden, sind Masochisten." - Masochismus ist Subversion, aber einige von uns haben keine Wahl.
Daniel

Antworten:

157

Sie können eine SVN-Änderungsliste verwenden , um eine Reihe von Dateien zu verfolgen, die Sie gemeinsam festschreiben möchten.

Die verlinkte Seite enthält viele Details, aber hier ist ein Beispiel für eine Zusammenfassung:

$ svn changelist my-changelist mydir/dir1/file1.c mydir/dir2/myfile1.h
$ svn changelist my-changelist mydir/dir3/myfile3.c etc.
... (add all the files you want to commit together at your own rate)
$ svn commit -m"log msg" --changelist my-changelist
Mark Pim
quelle
30

Sie können die --targets ARGOption verwenden, bei der ARG der Name der Textdatei ist, die die Ziele für das Festschreiben enthält.

svn ci --targets myfiles.txt -m "another commit"
Dmitry Yudakov
quelle
Funktioniert für mich in diesem Bash-Befehl:find . -name \*my.mask | xargs svn ci -m"message" --targets -
ASten
28

Ich hatte keine Probleme beim Festschreiben einiger solcher Dateien:

svn commit fileDir1/ fileDir2/ -m "updated!"
psy
quelle
Das funktioniert bei mir nicht. Fehler "svn: '/' ist keine Arbeitskopie". Hier habe ich meine Frage gepostet, du kannst schauen. askubuntu.com/questions/442742/how-to-update-dir-on-svn-server/…
Ja hat gut funktioniert. Auch innerhalb meines Dokumentstamms konnte ich alle Änderungen innerhalb der Arbeitskopienbaumstruktur mit folgendem festschreiben:> svn commit. -m 'Massen-Commit-Nachricht'
Grigoreas P.
3

Verwenden Sie einen Änderungssatz. Sie können dem Änderungssatz beliebig viele Dateien gleichzeitig oder über mehrere Befehle hinzufügen. und dann alle auf einmal begehen.

Colin Fein
quelle
1
svnbook.red-bean.com/de/1.6/svn.advanced.changelists.html - Das svn-Schlüsselwort lautet "changelist", das in der ersten Antwort angesprochen und am meisten bewertet wird.
John W. Clark