-
Hi, from git import Repo, Actor
repo = Repo(full_path)
assert not repo.bare
origin = repo.remote('origin')
assert origin.exists()
assert origin == repo.remotes.origin == repo.remotes['origin']
origin.pull()
repo.git.add(f'{full_path}/file_list.txt')
repo.git.add(f'{full_path}/files/')
repo.index.commit(f'Time now: {time_now}')
origin.push() Currently, after running such code, a commit is created with no changes to the files. I can't find any function that checks for any changes before commit after adding files. I don't mean changes to all code and to all files in the main .git folder, but changes to one file and one folder with many files. I am also looking for a solution other than using |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments
-
A commit has a link to a tree, which identifies the state of all files contained with it. Even though I am closing the issue, please feel free to keep posting here for any follow ups. |
Beta Was this translation helpful? Give feedback.
-
Thanks for the answer. I was able to find such a solution. I don't know if it's completely correct but it's important that it works. from git import Repo, Actor
repo = Repo(full_path)
assert not repo.bare
origin = repo.remote('origin')
assert origin.exists()
assert origin == repo.remotes.origin == repo.remotes['origin']
origin.pull()
repo.git.add(f'{full_path}/file_list.txt')
repo.git.add(f'{full_path}/files/')
if len(repo.index.diff('HEAD')) > 0:
repo.index.commit(f'Time now: {time_now}')
origin.push() |
Beta Was this translation helpful? Give feedback.
A commit has a link to a tree, which identifies the state of all files contained with it.
Thus, if the tree hash does not change between commits, they refer to the same state.
I believe one can get a handle on a tree with
commit.tree
.Even though I am closing the issue, please feel free to keep posting here for any follow ups.