Jens Mühlenhoff
Jens Mühlenhoff

Reputation: 14873

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.

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.

Upvotes: 17

Views: 1127

Answers (5)

Fabricio Araujo
Fabricio Araujo

Reputation: 3820

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.

Upvotes: 6

Philip Oakley
Philip Oakley

Reputation: 14061

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.

Upvotes: 1

Mot
Mot

Reputation: 29530

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.

Upvotes: 1

jbat100
jbat100

Reputation: 16827

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.

Upvotes: 6

Chris Thornton
Chris Thornton

Reputation: 15817

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.

Upvotes: 12

Related Questions