Search code examples
pythongithashmd5

MD5 hash of file changes after comitting, deleting and fetching from git


If one were to do the following:

def hashmdfive(filename):
    """Generate the md5 checksum."""
    hasher = hashlib.md5()
    with open(filename, "rb") as afile:
        buf = afile.read()
        hasher.update(buf)
    return hasher.hexdigest()
  1. make a file (e.g. test.txt) with some content.
  2. create hash of file by running hashmdfive above.
  3. committing and pushing to a remote git repo
  4. delete local file.
  5. fetching test.txt from remote
  6. create new hash of file by running hashmdfive above.

THE HASHES ARE DIFFERENT. Does anyone know why that is the case?


Solution

  • If you are running on Windows, git's autocrlf feature can be the cause of a digest changing:

    This will show you the current value: git config --global core.autocrlf

    Anything other than "False" can result in the behavior you are observing.