2010-01-07 9 views
5

Etwas, das ich nicht verstehe, wie SVN Protokollausgabe anzeigt. Angenommen, ich habe ein Projekt in Revision 10. Ich habe Unterdatei im Projekt dann ändern, die nun in Revision ist 11. Der Befehl svn log zeigt jetzt mir folgendes:Kann jemand diese SVN Protokollausgabe erklären?

svn log -vv 
      r10 ... 
      ------ 
      r9 ... 
      ------ 
      r8 ... 

jedoch die neueste Änderung (r11) zeigt nur, wenn ich die Dateinamen angeben:

svn log -vv ChangedFilename 
      r11 ... 

Sollte r11 nicht so gut in dem ersten Befehl auftauchen?

Antwort

23

Erklärung im Handbuch ist:
http://svnbook.red-bean.com/en/1.5/svn.tour.history.html#svn.tour.history.log

Warum svn Hat Protokoll Nicht anzeigen, was ich gerade begangen habe?

Wenn Sie machen eine Festschreibung und sofort Typ svn log ohne Argumente, Sie feststellen, dass Ihre letzte begehen zeigt nicht in der Liste der Log-Meldungen auf. Dies ist auf eine Kombination des Verhaltens von SVN commit und das Standardverhalten von svn Protokoll. Erstens, wenn Sie Änderungen an das Repository, svn Beulen nur die Revision von Dateien (und Verzeichnisse) verpflichten , dass es verpflichtet, so in der Regel die Mutter Verzeichnis bleibt bei der älteren Revision (siehe Abschnitt „Updates genannt und verpflichtet sind getrennt "für eine Erklärung warum). svn log dann standardmäßig zum Abrufen der Geschichte von das Verzeichnis bei seiner aktuellen Revision, und damit sehen Sie nicht die Änderungen vorgenommen. Die Lösung hier ist entweder Ihre Arbeitskopie zu aktualisieren oder explizit eine Revision Nummer zu SVN-Protokoll mit der --revision (-r) -Option.

2

Ich sehe das gleiche Verhalten wie du, wenn ich eine Datei ändern, es festschreiben, dann Log erneut ausführen. Es scheint, dass dieses Verhalten verschwindet, sobald ein 'svn update' im Ordner aufgetreten ist.

Vielleicht wird das Protokoll nicht aktualisiert, wenn Sie festschreiben, nur wenn Sie aktualisieren?

Here is the documentation on svn log (for release 1.5)

Sie können auch das das Protokoll aus dem Repository selbst erhalten, indem eine URL angeben

svn log URL[@REV] [PATH...] 
+0

Ahh, das macht Sinn, vorausgesetzt, svn log liest Ihren lokalen Datensatz und Ihr globaler Wert von svn log (ohne den Dateinamen) würde nicht aktualisiert werden, bis Sie mit dem Server mit svn update sprechen. –

3

Nur FYI, ich getestet mit Svn 1.6 und ein Svn Update + Svn Log funktioniert in der Tat als die Dokumentation Staaten. Um ein Update zu vermeiden, versuchen Sie "svn log -r PREV: HEAD" und das sollte die letzten Protokolle herunterziehen.

Verwandte Themen