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?


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

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"

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!"

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.