How to deal with files that are relevant to version control, but that frequently change in irrelevant ways?

.dproj files are essential for Delphi projects, so they have to be under version control.

These files are controlled by the IDE and also contain some information that is frequently changed, but totally irrelevant for version control.

  • Can I use the Delphi XE2 Subversion integration with Subversion 1.7
  • Is there a git plugin for the Delphi IDE?
  • Delphi RES files and Git
  • Linking TFS source control folder from another TFS project
  • GitHub API Single Commit dont fetch all files
  • How do you manage your Delphi Projects with third-party components in Version Control?
  • For example: I change the start parameters of the application frequently (several times a day), but don’t want to accidently commit the project file if only the part dealing with the start parameters has changed.

    So how to deal with this situation?

    A clean solution would be to take the file apart, but that isn’t possible with the Delphi IDE AFAIK.

    Can you ignore a specific part of a file?

    We’re using Subversion at the moment, but may migrate to Git soon.

  • Using Git on Windows, how do I ensure normalized line endings in repository and no conversion in work dir?
  • Git on Cygwin: Fails to add the host to the list of known hosts
  • Can't open ssh/authorized_keys of user
  • How to manage versions of a software in Git at the enterprise situation?
  • Git clone “fatal: I don't handle protocol 'ssh'”
  • SubGit error when svn users commit
  • 5 Solutions collect form web for “How to deal with files that are relevant to version control, but that frequently change in irrelevant ways?”

    SVN/git cannot “know” which bits of the file are important, and translating what is important for you to commit or not into file “bits” would be difficult (especially when you don’t know exactly how the information is structured within it). The most practical solution is to check the changes that have been made to the file and decide whether to commit them or not to the repository.

    You can decide which bits of the file you want to commit with git. This is not, however, the automated process you seem to be looking for.

    In our case, it’s rare for a developer to make a meaningful change to the .bdsproj, .dpr, .res files. So we reject the commit (pre-commit hook in subversion) unless special tags: [add project file] or [add res file] are present in the commit comment. This prevents “frivilous” changes to those files.

    For the specific case of startparameters: the DDevExtentions plugin of the well known Andreas Hausladen allow for the start parameters be stored separetely of dproj file. See more details about DDevExtensions on his site.

    EDIT: If I remember correctly, this feature was created just because he had that exact problem with start parameters and version control.

    I would not save the .dproj files directly in version control, but rather provide a default file which should be renamed by the user to get the flawed Delphi working.

    Use the --assume-unchanged option on git update-index <file> as described here and stackoverflow/what-is-assume-unchanged.

    You could make simple aliases for the those who need it made simple.

    Git Baby is a git and github fan, let's start git clone.