2017-02-22 8 views
1

Ich fragte vor ein paar Tagen how to commit an arbitrary directory tree in ClearCase und die Antwort, die ich erhielt, war die Verwendung des clearfsimport Tools. Dies hat einwandfrei bisher gearbeitet und kann „Import“ in Clearcase (auf eine dynamische Sicht) beliebige Verzeichnisbäume (aus einer externen Datei-System-Verzeichnis):Wie führe ich ein Update auf einem beliebigen Verzeichnisbaum durch?

clearfsimport -recu -nset /some/external/directory/foo . 

Mein Workflow ist, dass ich alle meine Arbeit tun und Testen in diesem externen Verzeichnis (foo) und wenn ich glücklich bin, verpflichte ich meine Quellen zu ClearCase mit dem clearfsimport Werkzeug wie oben beschrieben. Dies hat bisher beim ersten Commit funktioniert, aber jetzt möchte ich die geänderten Quellen importieren. Effektiv muss ich anstelle des vorhandenen Verzeichnisses foo einen neuen Verzeichnisbaum importieren. Die Änderungen können allgegenwärtig sein: Dateien/Verzeichnisse hinzugefügt, entfernt oder umbenannt, Dateien in Verzeichnisse oder Symlinks geändert (und umgekehrt). Effektiv sprechen wir vielleicht über zwei sehr unterschiedliche Verzeichnisbäume mit einer sehr ausführlichen Ausgabe diff -r.

ich den folgenden Workflow verwenden möchten:

ct co . 
ct rm foo            // remove existing dir from view 
ct ci . 
clearfsimport -recu -nset /some/external/directory/foo . // import the new dir version 

Sie mit dem obigen Ansatz sehen Sie in Bezug auf die Geschichte Probleme, etc?

Für die vollständige Offenlegung pflege ich mein Projekt (in /some/external/directory) git mit und erstelle ich so eine „saubere“ Kopie meines Projektes vor clearfsimport (Entfernen von git-spezifischen Dateien wie .git, .gitignore etc.) ausgeführt wird. Ich habe normalerweise eine detailliertere Geschichte in git, aber ich bin nur daran interessiert, die Geschichte von bestimmten bemerkenswerten "Meilensteinen" in ClearCase für andere Teammitglieder zu bewahren, die meinen Code und seine Entwicklung im Laufe der Zeit betrachten möchten. Nichtsdestoweniger möchte ich (zumindest vorläufig) keine Werkzeuge verwenden, um git mit ClearCase zu verbinden und es vorziehen, die Dinge einfach zu halten.

Ich erkläre, dass der Workflow, den ich versuche einzurichten, nur eine Möglichkeit ist (externes Verzeichnis zu ClearCase) und die ich in eine dynamische Ansicht importiere.

auf der Manpage der Suche nach clearfsimport ich so etwas wie ‚zwei Pässen‘ sehen wie -rmname erwähnt und Optionen sind, die Sache macht mir, dass es möglich ist, läuft nur clearfsimport mit dem Ziel eine bestehende Verzeichnisstruktur zu sein (dh ohne bis ct rm es zuerst). Aber ich bin mir nicht sicher, welche Beschwörungsformel genau zu verwenden ist und ob damit Fälle behandelt werden, in denen sich ein bestimmter Name auf verschiedene Arten geändert hat (zB von Datei zu Verzeichnis oder von Verzeichnis zu Symlink oder von Symlink zu Datei) oder wie Umbenennungen gehandhabt werden Geschichte.

Antwort

1

Sehen Sie irgendwelche Probleme mit dem obigen Ansatz in Bezug auf die Geschichte, etc?

Ja: Sie sind nicht auf rm alles soll, wenn clearfsimport verwenden.
Importieren Sie einfach in die gleiche Ansicht/Zielordner und ClearCase wird für Sie die neue/geänderte/gelöschte Datei erkennen, diese Dateien prüfen, aktualisieren oder löschen.

In der -rmname option zu Ihrem clearfsimport, und Clearcase stellen Sie sicher, „Spiegel“ den Import, eine gelöschte Datei in dem Ordner Quelle Bedeutung wird auch im Zielordner gelöscht werden.

Die "Beschwörungsformel" ist die gleiche wie zuvor, nur mit einem zusätzlichen -rmname Parameter.

+0

Ich bin nur ein bisschen unruhig, dass 'clearfsimport' wird das Richtige tun, wenn es um Namen, deren Typ kommt hat sich geändert (zB von Datei zu Symlink oder von Symlink zu Verzeichnis), deshalb dachte ich, dass 'ct rm' zu einer sauberen Weste führen würde. Aber ich verstehe Ihre Antwort zu sagen, nur 'clearfsimport' zu vertrauen, um das Richtige zu tun ... –

+0

@MarcusJuniusBrutus Ich stimme zu, dies muss verschachtelt werden für Randfälle, aber im Allgemeinen ist' Clearfsimport' für diesen Anwendungsfall gemacht . – VonC

+0

@MarcusJuniusBrutus Das Problem mit RM ist, dass Sie den Verlauf für alle gemeinsamen Dateien, die geändert wurden, vollständig verlieren. ClearCase wird sie als neue Elemente ohne Historie sehen. – VonC

0

Haben Sie nicht Schnappschuss Ansichten und arbeiten direkt in Clearcase als verwenden, würde dies einfach Ihren Ansatz

Verwandte Themen