![]() |
Suche: Best Practice - *.dproj und SVN
Hallo liebe Community,
wir wollen gerne unsere Delphi Projektdatei mit in unser SVN Repository einchecken, um Versionseinstellungen bei allen Entwicklern gleich zu ziehen. Wir haben uns vorab über den ![]() Da einige Entwickler der Meinung sind, das das Standardausgabeverzeichnis
Code:
ihnen nicht passt (...), suchen wir eine Möglichkeit diese
.\$(Project)\$(Config)
Über Anregungen und Vorschläge würde ich mich sehr freuen! Vielen Dank :) |
AW: Suche: Best Practice - *.dproj und SVN
Wären dafür nicht die "
![]() Jeder der den Standard-Ausgabepfad nicht mag kann seine eigene Optionsgruppe darüber pflanzen, da es eine separate Datei ist muss er sie aber auch nicht einchecken. PS: Ich habe schon lange nichts mehr mit Subversion gemacht, aber seit 1.8(?) konnte man doch auch einzelne Zeilen vom Commit ausklammern. So könnte man doch die Zeile welche das Ausgabeverzeichnis ändert einfach nicht committen. Oder hat SVN nicht mittlerweile auch so etwas wie einen "stash" (Git) bzw. "shelf" (Mercurial) ist? |
AW: Suche: Best Practice - *.dproj und SVN
a) 4.4.4. Excluding Items from the Commit List
Sometimes you have versioned files that change frequently but that you really don't want to commit. Sometimes this indicates a flaw in your build process - why are those files versioned? should you be using template files? But occasionally it is inevitable. A classic reason is that your IDE changes a timestamp in the project file every time you build. The project file has to be versioned as it includes all the build settings, but it doesn't need to be committed just because the timestamp changed. To help out in awkward cases like this, we have reserved a changelist called ignore-on-commit. Any file added to this changelist will automatically be unchecked in the commit dialog. You can still commit changes, but you have to select it manually in the commit dialog. b) Für die Konfig-Files einen eigenen Branch anlegen, der nie gemerged wird. |
AW: Suche: Best Practice - *.dproj und SVN
ignore-on-commit funktioniert, aber es gibt einen winzigen Nachteil:
Diese Liste wird nicht im Server, sondern im ClientVerzeichnis verwaltet. Also jeder muß das bei sich selber erst dort reinschieben, nach jedem einzelnen neuen Checkout, und wenn es jemand vergistt, dann wird es natürlich schnell mal hochgeladen. :stupid: |
AW: Suche: Best Practice - *.dproj und SVN
Vielen Dank für die ganzen Inputs.
Ich habe eine andere Möglichkeit gefunden, welche evtl. funktioniert: Wir haben einen eigenen Benutzer der permanent die Sperre auf die DPROJ Datei hält, so kann ich von diesem Benutzer aus die Version aktualisieren. Diese wird dann in die einzelnen Arbeitskopien gemergt. Sollte ein Entwickler versuchen seine DPROJ hochzuladen, sollte die Sperre das verhindern. Mal sehen wie lang das gut geht. Falls jemand noch eine andere Idee hat, würde ich mich sehr freuen. Viele Grüße! |
AW: Suche: Best Practice - *.dproj und SVN
Im SVN gibt es serverseitige Skripte, die man bei verschiedenen Aktionen ausführen lassen kann.
Da könnte man leicht ALLEN, bis auf Einen/Wenige, das einchecken solcher Dateien verbieten. Ich hab bei uns so ein Script eingespielt, damit jeder SEINE Log-Messages nach dem Commit nochmal ändern kann, falls er Diese vergessen oder etwas falschgemacht hat. Standardmäßig sind im SVN-Log alle Messages nicht veränderbar, selbst wenn man im Kontextmenü ein sogenanntes "Edit log message" entdeckt. :stupid: ![]() ![]() ![]() |
AW: Suche: Best Practice - *.dproj und SVN
Zitat:
Delphi-Quellcode:
Du kannst dieses Standardverhalten aber überschreiben, wenn du eine Datei namens DprojSplitter.cfg im Verzeichnis %AppData%\Roaming\Embarcadero\BDS\19.0\ (für Tokyo) anlegst, in der die gewünschten Einträge zeilenweise aufgelistet sind.Debugger_RunParams Debugger_RemoteRunParams Debugger_HostApplication Debugger_RemotePath Debugger_RemoteHost Debugger_EnvVars Debugger_SymTabs Debugger_Launcher Debugger_RemoteLauncher Debugger_IncludeSystemVars Debugger_UseLauncher Debugger_UseRemoteLauncher Debugger_CWD Debugger_RemoteCWD Debugger_RemoteDebug Debugger_DebugSourcePath Debugger_LoadAllSymbols Debugger_LoadUnspecifiedSymbols Debugger_SymbolSourcePath Um also z.B. das Unit-Ausgabeverzeichnis ebenfalls zu splitten, müsste diese Datei die obige Liste ergänzt um die Zeile DCC_DcuOutput enthalten. |
AW: Suche: Best Practice - *.dproj und SVN
Trifft vielleichtn icht ganz deine Frage:
aber die .DPROJ könntest du auch ausserhalb des SVN halten, z.B. indem du das Projekt ein Unterverzeichnis tiefer verschachtelst. Hat natürlich den Nachteil dass das "ganz" Projekt dann nicht im SVN ist, man könnte aber ein Backup der DPROJ innerhalb des SVN anlegen, wenn Änderungen kommen. Rollo |
AW: Suche: Best Practice - *.dproj und SVN
Vielleicht das auch als Input:
Wir haben bei manchen Projekten im Team das so gehandhabt, dass wir per SUBST ein Laufwerk eingebunden haben + das war das Projektlaufwerk, egal, wo auf einer HD das nun physisch war. Alles, was mit VCS oder Skripts des Projekts zu tun hatte, benutzte dieses Laufwerk. |
AW: Suche: Best Practice - *.dproj und SVN
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz