CVS remove sticky tag ohne update
CVS ist wirklich fahrend mich verrückt!
Gibt es irgendeinen trick, um entfernen sticky-tags, ohne dass eine Aktualisierung der Datei-Inhalt?
Ich weiß von "cvs up-A", aber dies ändert sich auch meine Dateien.
Oder Umgekehrt:
Gibt es eine Möglichkeit zum update ein komplettes Verzeichnis auf einen früheren Zeitpunkt, ohne klebrig-tags in den ersten Platz?
Hintergrund:
Ich benutze eine Arbeitskopie, die versioniert sowohl mit CVS und HG und ich habe es versaut, so dass ich wan ' T zurück zu gehen, um die neueste Punkt, wo es war in sync, und dann überprüfen, was kommen würde aus dem CVS.
Dank und Grüße.
- Ich auch, jetzt bin Versionsverwaltung mit beiden HG und CVS (HG für meine eigene Bequemlichkeit, CVS, da es die legacy-Projekt). Ich habe getan, ähnlich wie bei HG/GIT/CVS/RCS/BZR/... Wir müssen herausfinden,. oder schreiben Sie uns ein how-to für solche mehrere VCS-tracking.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese können abhängig von Ihrer version von CVS, und kommt mit dem VORBEHALT, dass es nicht unterstützt wird, aber ich verwendet, um manuell entfernen Sie das sticky-tag aus der CVS/Entries-Datei. Ich habe diese eine Menge, wenn ich wollte zurück zu Rollen meine funktionierende version auf eine frühere version, aber vermeiden Sie die klebrige tag so, dass ich nur update normalerweise, wenn ich bereit bin.
Erste, aktualisieren Sie einfach die Datei auf die von Ihnen gewünschte version aus dem repository. Für Sauberkeit ich war in der Gewohnheit des Entfernens meine lokale Kopie der ersten.
Dies wird natürlich verlassen Sie mit der klebrigen tag.
Den sticky-tag gespeichert ist, in der CVS/Entries-Datei in das Letzte Feld. Wenn man sich bei der CVS/Entries mit einem text-editor und suchen Sie nach Ihr mit dem Namen, findest du das hier:
Den T1.20 am Ende stellt das sticky-tag. Sie können einfach entfernen Sie es, verlassen Sie die Zeile:
Nun den sticky tag Weg ist. Sie sind in den gleichen Zustand Sie sein würde, wenn jemand überprüft hatte, in einer neuen version, und Sie habe einfach noch nicht aktualisiert wurde.
Sobald Sie überprüfen, ob dies funktioniert für eine einzelne Datei, und Holen Sie mutig, Sie können das gesamte Verzeichnis auf einmal, wenn Sie wollen, mit Ihrem bevorzugten tool (perl, awk, etc.) zu ändern Sie jede Datei in der CVS/Entries (oder nur die Zeilen, die Sie ändern möchten). Man sollte immer vorsichtig sein, natürlich. Ich verwende perl, und halten Sie ein .backup zurückgreifen, im Falle von Schwierigkeiten:
Up-to-date check failed for
. Hat eine Lösung existiert?Können Sie mit der option-p zu "cvs up" zu schreiben, um die standard-Ausgabe aus, die Sie umleiten können, um die original-Datei mit ">". Dies verhindert Klebrigkeit.
Den sticky tag ist es daran zu erinnern, dass Sie nicht in den KOPF. Wenn Sie änderungen übernehmen, Sie gehen nicht dort. Und nur das entfernen des sticky tag gefährlich werden könnte, in normalen Situationen.
Ich denke, der beste Weg zu gehen, um einen patch zu erstellen, aus dem Datum die repositories wurden in sync, um eine aktualisierte Kopie. Dann wenden Sie den patch rückgängig gemacht. Erstellen Sie einen patch mit den geänderten änderungen und gelten auf der anderen repository.
Auf eine saubere (aber nicht synchronisiert, repo):
$ cvs diff -R -D date_when_synced >patchfile
$ patch -R -pNUM <patchfile
Dann in der repo man aus den änderungen, die Sie nicht wollen, zu verlieren, mit
cvs up -A
:$ cvs diff -R >patchfile2
Dann wenden Sie den patch in der "clean" - repository:
$ patch -pNUM <patchfile2
Ich glaube, das könnte tun, was Sie wollen, wenn ich es richtig verstanden habe.