Gibt es eine Möglichkeit, einen kurzen CVS-Status von der Kommandozeile zu bekommen?

StackOverflow https://stackoverflow.com/questions/211819

  •  03-07-2019
  •  | 
  •  

Frage

Wenn Sie eine cvs update tun, Sie einen schönen Überblick über den Zustand des Repository erhalten, zum Beispiel:

M src/file1.txt
M src/file2.txt
C src/file3.txt
A src/file4.txt
? src/file5.txt

Gibt es eine Möglichkeit, diese zu aktualisieren, ohne wirklich zu bekommen? Ich weiß, es ist cvs status, aber das ist viel Ausführlich:

===================================================================
File: file6.txt        Status: Up-to-date

Working revision:    1.2
Repository revision: 1.2     /var/cvs/cvsroot/file6.txt,v
Sticky Tag:          (none)
Sticky Date:         (none)
Sticky Options:      (none)

Ich könnte natürlich einen Skript, um die Transformation von der letzteren zur ersteren zu tun, aber es scheint eine Verschwendung von Zeit, da cvs kann offenbar die ehemaligen produzieren.

War es hilfreich?

Lösung

Sie können die Option -n verwenden, um die Update-Ausgabe zu erhalten, ohne tatsächlich die Dateien zu aktualisieren. Sie können auch hinzufügen -q (leise), um alle Server-Nachrichten zu unterdrücken.

cvs -q -n update

Andere Tipps

@jmcnamara: Guter Tipp

Und die ganze Zeit habe ich dieses Bash-Skript wurde mit:

cvs -q status "$@" | grep '^[?F]' | grep -v 'Up-to-date'

ich einige Aliase haben, sein, dass möglicherweise nützlich für jemand:

alias cvsstatus_command='cvs -q status | grep "^[?F]" | grep -v "Up-to-date" | \
    grep -v "\.so" | grep -v "\.[c]*project"'

alias cvsstatus_color='nawk '"'"'BEGIN \
    { \
        arr["Needs Merge"] = "0;31"; \
        arr["Needs Patch"] = "1;31"; \
        arr["conflicts"] = "1;33"; \
        arr["Locally Modified"] = "0;33"; \
        arr["Locally Added"] = "0;32" \
    } \
    { \
        l = $0; \
        for (pattern in arr) { \
            gsub(".*" pattern ".*", "\033[" arr[pattern] "m&\033[0m", l); \
        } \
        print l; \
    }'"'"

alias cvsstatus='cvsstatus_command | cvsstatus_color'

Dies wird nur die Dateinamen und deren Status, angezeigt werden alle up-to-date-Dateien ignorieren, entfernen Sie alle Eclipse-Projektdateien und gemeinsam genutzte Objekte und auch werden die Linien in verschiedenen Farben drucken, je nach Status (zum Beispiel habe ich für lokal modifizierte Orange, rot für Dateien, benötigen fusionieren, grün für lokal hinzugefügt, usw.)

Wenn Sie CVSNT verwenden Sie auch cvs status -q nur tun können, die auch produzieren viel kürzere Ausgabe als der reguläre Statusbefehl (auch nur eine Zeile pro Datei). Bei neueren Versionen können Sie sogar cvs status -qq tun, die die up-to-date-Dateien überspringen.

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