begehen Wenn ich Ihr Problem zu verstehen, Sie haben:
project1/
project1/link1 -> ../../some/where/else
Wenn Sie eine einfache tun svn add link1
es fügt einen Symlink Eintritt in das Subversion-Repository, aber was Du versuchst es zu erreichen, indem du das Zeug irgendwo anders in den Baum bekommst.
Wenn dies der Fall ist, dann kämpfen Sie in die falsche Richtung, Sie sollten die echten Dateien und Verzeichnisse unter link1 erstellen und die Zielspeicherorte als symbolische Verknüpfungen in das link1-Verzeichnis setzen. Das wäre eine einfache Lösung für das Problem.
Eine andere Lösung wäre, den Standort ../../some/where/else
einen svn-Standort in seinem eigenen Recht zu machen, und link1 eine externe Definition zu diesem Ort zu machen. Wenn Sie im Hauptverzeichnis festschreiben, werden die externen Daten zur gleichen Zeit übernommen, wodurch die Informationen gespeichert werden. Um jedoch sicherzustellen, dass der andere Speicherort synchron gehalten wird, müssen Sie sicherstellen, dass Sie ihn auf die gleiche Version wie die gespeicherten Daten aktualisieren.
In meinem Fall auf meinem Desktop habe ich ein Einstellungsverzeichnis:
$HOME/settings
Dies ist eine ausgecheckte Kopie eines Verzeichnisses enthält .bashrc
, .profile
, .vimrc
, .vim
usw. Dateien und Ordner von einer svn
Repo. Alle meine Profildateien und -verzeichnisse waren symbolische Verknüpfungen in diesen Ordner, also zum Beispiel .profile
->settings/.profile
, usw. Wenn ich Änderungen vornahm, wurden sie in der SVN-Struktur widergespiegelt, auf die ich zurückgreifen kann, um sicherzustellen, dass ich das nicht tue Verliere meine Konfigurationseinstellungen, wenn ich zu einem anderen System gehe.
Wenn Sie wirklich svn folgen Symlinks als Hardlinks (Sie können nicht machen Verzeichnis Hardlinks, weil es eine schlechte Sache ™ wäre) wollen, dann werden Sie die SVN-Client Quelle hacken müssen, so dass es tat, was du wolltest; aber das wäre ein Wartungsalbtraum.
Sie könnte mit dem Machen der Symlink in eine Bindung Mount-Punkt auf das Ziel gerichtet, aber das hat seine eigenen Probleme - Sie müssten Root sein, um dies zu erreichen, und es endet lustige Einträge in Ihrem/proc/mounts, um dies zu erreichen:
mount --bind /absolute/path/to/some/where/else project1/link1
Große Antwort.Ich werde für jetzt mit der einfachen Lösung gehen. – Cyrille
Oh, ich erinnerte mich gerade, warum ich es so gemacht habe (Symlink zu externem Verzeichnis innerhalb der Arbeitskopie): Ich brauchte www-data Benutzer, um Dateien in dieses Verzeichnis schreiben zu können. Da ich die Berechtigungen in meinem Home-Verzeichnis nicht bis zu meiner Arbeitskopie ändern möchte, werde ich wohl Ihre alternativen Lösungen durchsuchen müssen ... – Cyrille
lol, Pete, rate mal, welcher Symlink mich hierher gebracht hat? ;-) Lass uns svn es bald verschieben! – gatopeich