svn-command line-Gibt es ein Skript oder einen Befehl, der jede Änderung festschreibt?

Mit" jeder Änderung "meine ich Tortoisesvns Schaltfläche" Commit".
Es entfernt die gelöschten Dateien, fügt neue hinzu und übernimmt die Änderungen.
Zumindest sind dies diejenigen, die ich kenne, aber es kann auch andere geben.
(Ich drücke einfach "Alle" und drücke Commit in Tortoise.)

RabbitVCS ist für Linux verfügbar, aber die CLI-Version ist commit == svn commit.
Gibt es ein kleines Skript oder etwas, das Tortoise ' s Commit imitieren könnte?

Umgebung ist Linux mit bash-Eingabeaufforderung. (SVN 1.7.5)

Author: Apache, 2013-04-03

2 answers

Gehe zum Stammverzeichnis deines Arbeitsverzeichnisses.

svn add . --force

(Dies durchläuft rekursiv Ihr Arbeitsverzeichnis und führt ein svn add für jede Datei aus, die nicht bereits unter Versionskontrolle steht.)

Als nächstes tun Sie dies:

svn rm $( svn status | sed -e '/^!/!d' -e 's/^!//' )

(Dies läuft svn status. Der Befehl status gibt rekursiv eine Liste von allem an, was sich im Arbeitsverzeichnis geändert hat. Der seltsame Befehl sed findet alle Zeilen, die mit "!"(so zeigt der SVN-Status eine gelöschte Datei.))

Jetzt tun:

svn commit

Nicht, dass ich wirklich raten, dies zu tun. Es wäre vorzuziehen, nur "svn rm oldfile" anstelle von "rm oldfile" zu verwenden, wie Sie Ihre Änderungen tun. Die " svn hinzufügen . -- force " ist auch nicht so großartig: Es werden alle temporären Dateien und Objektdateien eingecheckt, die Sie beim Testen generieren. Es wäre besser, nur "svn add newfile", wenn Sie eine neue Datei hinzufügen möchten.

Normalerweise führe ich "svn status-u" vor jedem checkin, um ein klares Bild davon zu bekommen, was sich in meiner Arbeitskopie geändert hat.

Ich habe die Antwort für den svn rm-Teil gefunden unter: https://stackoverflow.com/questions/1265122/how-can-i-programmatically-detect-missing-files-in-tar-archive-and-delete-them-f?rq=1, was wiederum Gutschriften http://geryit.com/blog/command-line-subversion-practices/.

 0
Author: Wandering Logic,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-05-23 12:41:51

Ich Verwende und Plane Dieses Batch-Skript . Es funktioniert gut.

CD "MyPath"

for /f "usebackq tokens=2*" %%i in (`svn status ^| findstr /R "^\!"`) do (svn del "%%i %%j")

svn add * --depth=infinity --force 

svn commit . -m "My Message"
 0
Author: Seyed Ali Mahmoody,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-04-15 14:22:36