In Subversion habe ich einen Zweig mit svn copy
aus einem Trunk erstellt. Laut dem SVN 1.5-Handbuch : "Dies ist der einfachste Weg, um eine Revision in Ihrem Repository zu" markieren "- svn kopiert diese Revision (normalerweise HEAD) in Ihr Tag-Verzeichnis.
svn copy file:////svn/projectX/trunk file:///svn/projectX/branches/stefanl
Dann mache ich meine Änderungen am Zweig stefanl
. Ich möchte meine Änderungen in den Stamm übernehmen, aber bevor ich das tue, würde ich gerne einen Unterschied der Änderungen sehen.
Wie kann ich den 'stefanl'-Zweig gegen den' Stamm'-Zweig unterscheiden? Ich habe svn diff
ausprobiert, aber es gab nicht viele Informationen:
% svn diff file:////svn/projectX/trunk file:///svn/projectX/branches/stefanl
Property changes on: .
___________________________________________________________________
Modified: svn:mergeinfo
Reverse-merged /trunk:r1699-1870
Hinzufügen zu den vorherigen Antworten (wenn Sie Tortoise SVN unter Windows verwenden):
Sie können Unix-Vergleiche zum Vergleichen von Verzeichnissen durchführen.
So finden Sie fehlende Dateien:
diff -r svn/projectX/trunk svn/projectX/branches/stefanl | grep -i only
So finden Sie die Unterschiede zwischen den Dateien:
diff -ru svn/projectX/trunk svn/projectX/branches/stefanl
Ich hatte die gleiche Frage und fand den Vorschlag in einem Mail-Thread: http://svn.haxx.se/users/archive-2003-08/0538.shtml
Basierend auf den anderen Antworten und ein wenig Recherche habe ich ein Skript geschrieben, das es automatisch erledigt.
#!/bin/bash
url=$(svn info | grep ^URL: | sed -e 's,^URL: ,,' )
root=$(svn info | grep '^Repository Root:' | sed -e 's,.*Root: ,,' )
trunk=$root/trunk
if [[ -n "$1" && ! -e "$1" ]]
then
echo "What? svn diff \"$1\"? really?"
exit
fi
svn diff $url/$1 $trunk/$1 > trunk.diff
Sie lassen es direkt unter dem Zweig laufen. Sie können einen Pfad (Verzeichnis oder Datei) übergeben, und es funktioniert wie erwartet. Wenn nicht, dann wird es nur den Zweig und den Stamm unterscheiden.
Wenn Sie das Subversive-Plugin mit Eclipse (von anderen Ide?) Verwenden, wechseln Sie in die Repository-Browsing-Perspektive . Klicken Sie im SVN-Repositories-Fenster mit der rechten Maustaste auf ein Element und wählen Sie die Option "Compare ..." ..__ sollte von dort intuitiv sein.
Vielen Dank für die Info-Jungs, ich würde etwas hinzufügen, um die Lesbarkeit der diff-Ergebnisse zu verbessern. Wenn Sie: svn diff svn: // url: 9090/branchen/PRD_0002 svn: // url: 9090/ast/TST_0003> svn_diff_filename.txt
Sie können auch Folgendes verwenden: Findstr "Index:" C:\Pfad\svn_diff_filename.txt> svn_diff_file_list.txt
Dadurch erhalten Sie eine lesbare Liste von Dateien, die Unterschiede aufweisen.
Grüße, Kra.
Benutzen:
svn diff ^/trunkUrl/fileName ^/branchUrl/fileName
Dies gibt Ihnen den Unterschied zwischen einer Datei in einem Zweig und einem Stamm.