Meine Mitarbeiter und ich finden oft, dass wir verschiedene Eigenschaften von svn: ignore und svn: externals für unsere eigenen Arbeitskopien eines Projekts festlegen möchten. Es scheint nicht so, als ob die svn-Funktionalität in Bezug auf die Eigenschaften erfordert, dass diese Eigenschaften versioniert werden, aber wir haben noch keinen Weg gefunden, diese Eigenschaften zu widerrufen.Ist es möglich, benutzerspezifische svn: x-Eigenschaften (z. B. svn: ignore und svn: externals) in Subversion zu haben?
Antwort
Nein, Eigenschaften sind spezifisch für die Datei/das Verzeichnis, auf das sie eingestellt sind. Benutzerspezifische Eigenschaften existieren nicht.
Warum brauchen Sie verschiedene svn: externals? Eine Möglichkeit, dies zu tun, besteht darin, ein eigenes Verzeichnis im Repository zu haben, das nur externe Elemente enthält. Auf diese Weise können Sie Ihre eigenen Äußerlichkeiten kontrollieren.
Über die Konventionen und das Layout des Repositorys müssen Sie sich einigen. Subversion erlaubt Benutzern nicht wirklich, ihre Sicht auf das Repository anzupassen.
Um diese Eigenschaften zu widerrufen, löschen Sie sie aus dem Ordner oder der Datei, an die sie angehängt sind (dann commit). Wenn Sie die Befehlszeile verwenden, können Sie "svn propdel" verwenden, um sie zu entfernen.
Properties in SVN sind auf dem Server gespeichert, sie sind nicht Arbeitskopie Konstrukte, so dass Sie nicht die gleiche Eigenschaft für verschiedene Benutzer festgelegt haben können.
Um verschiedene 'Ansichten' des gleichen Codes zu erhalten, können Sie stattdessen in branching suchen, jeder von Ihnen arbeiten an Ihren eigenen Filialen und regelmäßig Ihre Änderungen in den Kofferraum zusammenführen. Das klingt nach dem Workflow, den Sie mit unterschiedlichen Eigenschaften pro Benutzer erreichen möchten.
Für eine andere Betrachtungsweise von svn: ignore können Sie auf Ihren Clients verschiedene 'global-ignores' einstellen.
Muhahahahaha!
A völlig unpraktische Lösung zu bekommen benutzerspezifischen (na ja, eigentlich arbeitsplatzspezifische) svn: externals:
Erstens haben jeden Entwickler eine Subversion-Repository auf ihrer eigenen Maschine erstellen, und ein wenig svnserve laufen Instanz, um es zugänglich zu machen.
Lassen Sie jeden Entwickler die gewünschte Eigenschaft svn: externals im Stammverzeichnis des Repository festlegen
svn co svn://localhost/local-externals
svn pe svn:externals local-externals
...
svn commit local-externals
In Ihrem zentralen Repository, gehören svn: externals Verweis auf svn: // localhost/local-externals
svn co svn://example.com/repo/project/trunk
svn pe svn:externals
... define an reference to svn://localhost/local-externals
svn commit trunk
nun jeder Entwickler den Stamm Check-out aus ihren Äußerlichkeiten Verzeichnis erhalten ihre lokales externes Repository eingezogen, das wiederum die Teile des Hauptrepositoriums einziehen kann, die sie in ihren Checkout miteinbeziehen wollen.
Sie könnte dies tun, aber ich denke, ich würde mich selbst für nachweislich verrückt für diese in Betracht ziehen.
Danke! Wie Sie vorschlagen, werde ich wahrscheinlich nicht so weit gehen, aber ich mag das kreative Denken und das böse Lachen. –
Denken Sie an SVN als ein Dateisystem. Wenn Sie Ihre Ziele erreichen wollten, was würden Sie in einem Dateisystem tun? Jeder von Ihnen würde irgendwo eine Kopie der Originaldateien erstellen.
Sie können das gleiche mit Subversion (svn copy
) tun. Eigenschaften, die in den neuen Unterverzeichnissen festgelegt sind, gelten nur für diese Unterverzeichnisse und nicht für die Originaldateien.
Aber es gibt einen Preis: Sie müssen Ihre Änderungen jetzt manuell synchronisieren (zusammenführen) (genau wie Sie tun müssten, wenn Sie dies im lokalen Dateisystem ohne Subversion tun).
Ich bin mir nicht bewusst, dass VCS erlaubt, was Sie wollen, kostenlos.
- 1. Nicht anzeigen svn: externals in svn status
- 2. svn: externals und Berechtigungen
- 3. Interne svn: externals
- 4. Ein Mercurial-Repository automatisch importieren (z. B. SVN Externals)
- 5. Subversion erhält neueste ohne svn Aktualisierung: externals
- 6. SVN: externals ignorieren, wenn
- 7. svn externals funktioniert nicht
- 8. Sparse Checkouts und svn: externals
- 9. Ist es möglich, die Eigenschaft "svn: externals" des Subversion-Repositorys remote zu ändern?
- 10. migrieren svn zu git mit svn external
- 11. Hilfe zum Verständnis SVN Externals
- 12. Alle svn: externals rekursiv auflisten?
- 13. SVN Subversion-Setup und Authentifizierungsproblem
- 14. Subversion (svn) Anfängerfragen
- 15. SVN externals Quelle in Zielverzeichnis ändern
- 16. Wie lösche ich ein Verzeichnis im SVN-Repository und setze es gleichzeitig auf svn: ignore?
- 17. Svn Externals zu Nuget Migration - Bedenken
- 18. Warum wird svn: ignore ignoriert?
- 19. SVN ignorieren ignorieren ... möglich?
- 20. Ist es möglich, git svn dcommit Ergebnis in einem einzigen SVN Commit zu machen?
- 21. Ist es möglich, SVN-Tag umzubenennen
- 22. git & svn externals - eine endgültige Lösung noch?
- 23. SVN (Subversion) Anmeldeinformationen in Jenkins
- 24. Konfigurieren Sie svn: externals, um Code aus Github in ein Svn-gehostetes Projekt einzubinden
- 25. Subversion E160013: '/ svn/xxx /! Svn/me' Pfad nicht gefunden * Fehler
- 26. Eine echte, robuste, git svn externals Lösung?
- 27. Git SVN und external
- 28. SVN und TortoiseSVN Zugriffsprobleme
- 29. Subversion: Versioned ".svn" Verzeichnis loszuwerden
- 30. Ist es möglich, ein Svn-Update zu planen?
Danke! Dies ist eine gute Antwort auf meine Frage. Es sieht wirklich so aus, als wäre Verzweigung der beste Weg, um zu erreichen, was ich versuche, obwohl es nicht besonders praktisch ist. Dies ist eine Art Nischenanwendung, da CADENCE zusammen mit svn verwendet wird, aber das führt zu guten Gründen für diese Fähigkeit. Obwohl es sich um eine Nischenanwendung handelt, scheint die Implementierung dieser Fähigkeit nicht zu schwierig zu sein (es gibt bereits benutzerdefinierte Eigenschaften, die versioniert werden können oder nicht). Vielleicht auf eine zukünftige Version ... –
das Problem ist: Wo würdest du diese Eigenschaften setzen, wie sie auf dem Server leben. Das Hinzufügen von benutzerspezifischen Requisiten zu jeder Datei würde schnell unübersichtlich werden. Verzweigen ist was du willst, es ist viel bequemer, als du denkst, wenn du es zweimal getan hast, und deutlich leistungsfähiger, als du herausfinden wirst, wenn du beginnst zu erkennen, was du sonst noch tun kannst. – gbjbaanb