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.
\nI am also looking for a solution other than using untracked_files
in a loop looking to see if my needed files are there.
A commit has a link to a tree, which identifies the state of all files contained with it.
\nThus, if the tree hash does not change between commits, they refer to the same state.
\nI 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.
","upvoteCount":1,"url":"https://github.com/gitpython-developers/GitPython/discussions/1162#discussioncomment-408817"}}}-
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.
-
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.