Ich habe eine große Anwendung in einer Produktionsumgebung, die ich unter Versionskontrolle verschieben möchte. Also habe ich ein neues Repo erstellt und die App importiert, abzüglich verschiedener Verzeichnisse und Dateien, die nicht der Versionskontrolle unterliegen sollten. Jetzt muss ich die installierte Kopie auschecken (aber die zusätzlichen Dateien behalten). Zu diesem Zeitpunkt, in einer aktuellen Version von SVN, würde ich einfach einen Checkout über das vorhandene Verzeichnis mit der Option --force durchführen. Aber leider habe ich eine alte Version von SVN, von früher, als die Option --force hinzugefügt wurde (und noch nicht aktualisieren kann ... lange Geschichte).Kopieren der .svn-Verzeichnisse von einer Kasse zu einer Nicht-Kasse, um es zur Kasse zu machen
Also habe ich die App in ein anderes Verzeichnis ausgecheckt und möchte einfach alle .svn-Verzeichnisse in das ursprüngliche Verzeichnis kopieren, wodurch das Original in eine Kasse verwandelt wird, während die zusätzlichen Dateien allein gelassen werden. Nun, vielleicht habe ich nur einen harten Tag und verpasse etwas, das auf der normalen Seite ist, aber ich scheine das nicht herausfinden zu können. Hier sind die Ansätze, die ich habe versucht, so weit:
Verwendung rsync: Ich kann nicht scheinen, um die richtige Kombination von Einschluss- und Ausschluss Richtlinien zu treffen rekursiv die .svn Verzeichnisse alle zu erfassen, aber sonst nichts.
Verwenden Sie cp: Ich kann nicht einen guten Weg, um es alle .svn Verzeichnisse quer durch und durch die ganze App zu treffen.
Verwendung find mit -exec cp: Ich habe Probleme mit dem führenden Teil der Pfadnamen der gefundenen Dateien, die die Zielpfade durcheinander bringen. Ich kann es mit -printf '% P' ausschließen, aber das scheint nicht in den {} Ersatz für exec zu gehen.
Verwendung finden mit XARGs zu cp: Ich habe Probleme mit dem Senden über Unterverzeichnisse vor dem Senden ihrer Eltern zu finden. Leider hat find keine Option --breathth.
Irgendwelche Gedanken da draußen?
Weitere Informationen:
- bash 3.0.0.14
- rsync 2.6.3 p28
- cp 5.2.1
- SVN 1.3.2
Stellen Sie sicher, dass Sie daran denken, die Berechtigungen für die .SVN-Ordner ordnungsgemäß festzulegen, andernfalls kann es ein potenzieller Sicherheitsausschluss sein. Diese Website erklärt das Problem http://www.adamgotterer.com/2009/01/26/hacking-the-svn-directory/ – Joshua