Wie kann ich eine Liste aller svn: externals (rekursiv) in einem Verzeichnis erhalten? Gibt es dafür ein Dienstprogramm?
(Ich benutze Windows (und Schildkröte))
Ich habe eine Reihe von svn: externals, die mit verschiedenen gemeinsam genutzten Teilen meines Projekts verknüpft sind, und wenn ich verzweige, ist es normalerweise ziemlich fehleranfällig, alle externen Elemente zu finden und sie so zu ändern, dass die Verknüpfung zu Pfaden innerhalb des neuen Zweigs erfolgt.
svn
tortoisesvn
Niels Bosma
quelle
quelle
Antworten:
Gehen Sie im Stammverzeichnis Ihrer Arbeitskopie wie folgt vor:
Wie in den Kommentaren unten erläutert, werden hier keine externen Elemente in externen Elementen aufgeführt.
Hinweis für TortoiseSVN-Benutzer: Im TortoiseSVN-Installationsprogramm gibt es eine Option, um auch den SVN-Befehlszeilenclient zu installieren. Diese Option ist standardmäßig nicht aktiviert.
quelle
Das manuelle Ändern all dieser externen Eigenschaften klingt mühsam. Haben Sie sich die neuen Funktionen für externe Geräte angesehen, die in Subversion 1.5 hinzugefügt wurden?
Vielleicht würde einer von denen helfen? Ich denke, es hängt genau davon ab, wie Sie verzweigen und wie Ihre Repository-Struktur aussieht.
quelle
Meine Problemumgehung für TortoiseSVN:
Öffnen Sie das Dialogfeld "Zweig / Tag ..." im SVN-Kontextmenü. Der untere Dialog zeigt alle externen Elemente einschließlich verschachtelter externer Elemente.
quelle
svn propget svn:externals -R
.Um dieses Problem zu umgehen, können Sie Ihr Projekt möglicherweise so strukturieren, dass alle externen Elemente im selben Ordner festgelegt sind, z. B. im Projektordner direkt unter Trunk. (Dies bedeutet übrigens nicht, dass alle externen Ordner dieselbe Tiefe haben müssen.) Dann können Sie mit der rechten Maustaste auf Ihren Projektordner klicken, dann auf Eigenschaften ..., dann auf die Registerkarte Subversion, dann auf Eigenschaften ... und dann Doppelklicken Sie auf svn: externals.
quelle
Ich habe die Antwort von Wim Coenen verwendet und das folgende Skript geschrieben, um eine Liste aller Revisionen zu erstellen:
Glücklicherweise habe ich keine verschachtelten externen Geräte, daher musste ich dies nicht testen und ich denke, es würde nicht funktionieren. Wenn Sie dies benötigen, reicht es wahrscheinlich aus, diese Funktion nur rekursiv aufzurufen. Außerdem habe ich nie mit Dateinamen getestet, die maskiert werden müssen. Dann wird es wahrscheinlich nicht funktionieren.
HAFTUNGSAUSSCHLUSS: Ich weiß, dass die ursprüngliche Frage Windows betraf und das Shell-Skript dort nur funktioniert, wenn Sie Cygwin oder ähnliches verwenden.
quelle
Ich nahm die Antwort von Daniel Alder , entfernte die svnversion-Aufrufe und machte sie rekursiv (HINWEIS: Funktioniert
read a b c d e
nicht, wenn in der Quelle oder im Ziel ein Leerzeichen vorhanden ist). Dies ist ein Bash-Skript, daher benötigen Sie entweder etwas wie Cygwin oder verwenden das Windows-Subsystem für Linux .quelle