Search code examples
gitmsysgit

Pitfalls when upgrading to a new version of Git


I'm writing some documentation for how we will use Git in our organization.

For now, I am requiring that everyone use the same version of msysgit (v1.7.7.1). Is this a good idea or is it probably ok/desirable for team members to use newer versions of Git as they become available, whenever they wish to install them? If it's best that everyone use the same version, then what pitfalls might exist when upgrading to a new version of Git? For example, might it have some serious breaking changes we need to know about, or a conversion of the Git database into a new format? Obviously it is impossible to predict the future, but examples from the past could be useful (i.e. have those kinds of things been an issue before). Ideally, guidance from the Git developers on this issue would be great.

The motivation for this question is that Git repositories are stored in a special repository file format which it seems to me could change with a new version of Git (admittedly I don't fully understand how it's structured). The last thing I need is for development to come to a standstill because somebody decided to upgrade the bare repository file format on the server to the latest & greatest version of Git that nobody else has installed yet. (Or worse, for the clients with the older version of Git to corrupt the newly-converted database on the server.)


Solution

  • The changes between minor versions are pretty minimal and even in case of changes from 1.6 to 1.7, git has been known to not break compatibility in a huge way. Usually new features are added, new flags to commands, some performance improvements and bug fixes and nothing should break compatibility across version. I would recommend reading the release notes for each new version and see if anything is mentioned about compatibility. The last major change to repo structure was in 1.5.0 I believe, but even then nothing was broken between 1.4.x and 1.5.0.

    Also look here: Git repository backwards compatibility