Frage

Gibt es eine Möglichkeit, Subversion mitzuteilen, dass es „aktualisieren/zusammenführen“ soll, es sei denn, es würde einen Konflikt verursachen?

Ich weiß, dass du es gebrauchen kannst --dry-run / status -u Ich muss dies überprüfen, bevor ich das Update ausführe, aber ich habe oft andere, die Updates ausführen und fehlerhafte Webseiten erhalten, weil sie die Zeile „C index.php“ nicht bemerken.

Mir ist auch aufgefallen, dass svn über Konflikte nicht allzu unzufrieden zu sein scheint – es sagt immer noch „updated to revision blah“ und beendet Null, unabhängig von Konflikten.Daher muss ich die zeilenweise Ausgabe analysieren, um sie zu entdecken.Sicherlich gibt es einen besseren Weg?

War es hilfreich?

Lösung

Mit dem Parameter --accept können Sie angeben, was passieren soll, wenn ein Konflikt auftritt:

--accept ARG             : specify automatic conflict resolution action
                          ('postpone', 'base', 'mine-full', 'theirs-full',
                          'edit', 'launch')

Siehe auch die interaktive Konfliktlösung Seite im SVNBook

Andere Tipps

Vielleicht ist es besser, ein grafisches Tool zu verwenden?Oder schreiben Sie ein Skript für die Aktualisierung, das die Ausgabe in eine Datei umleitet und am Ende ein „cat svnupdate.log | grep „^C „“ ausführt, um Ihnen etwaige Konflikte anzuzeigen?

Bei den grafischen Tools, die ich verwende (TortoiseSVN und Netbeans), machen sie am Ende ein unangenehmes Geräusch und präsentieren Ihnen einen Dialog zur Zusammenführungsauswahl, in dem Sie mit ihnen umgehen können.Ich kenne kein Äquivalent mit so viel Leistung für die Befehlszeilentools.

@jsight:TortoiseSVN ist großartig, aber ich entwickle hauptsächlich in einer *NIX-Umgebung, ohne X.Daher verwende ich normalerweise (beschränkt auf) die Befehlszeile.

In Bezug auf Ihren Skriptvorschlag arbeite ich gerade daran – weshalb es mich ärgert, dass ich $? nicht einfach überprüfen kann.Im Moment überspringe ich die „Ausgabe in eine Datei“ und verwende eine Pipe, aber ansonsten genau das, was Sie beschreiben.

Mit dem Parameter --diff3-cmd können Sie angeben, welches Zusammenführungstool verwendet werden soll (normalerweise diff3 von diffutils).

Sie können auch ein Pre-Commit-Skript verwenden, um nach Konfliktmarkierungen in Dateien zu suchen und das Commit zu verhindern, wenn sie vorhanden sind.

Subversion 1.5 (kürzlich veröffentlicht) bietet mit dem Argument „--accept“ die Möglichkeit, anzugeben, was während eines Aktualisierungskonflikts geschieht.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top