This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository maintenancescripts. commit ce1e9271cfc83b3e005f7d9f41a761c33ec65b24 Author: Mihai Moldovan <ionic@ionic.de> Date: Thu Jan 2 11:35:20 2020 +0100 git/hooks/update-script._irkerhook.py_: actually fetch the parent of the first uniquely new commit. This is way trickier than it sounds, because it could be... anything. A merge, a grafted commit, or other stuff. We'll try to guess and use the very first parent. --- git/hooks/update-script._irkerhook.py_ | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/git/hooks/update-script._irkerhook.py_ b/git/hooks/update-script._irkerhook.py_ index babaaae..94b2735 100755 --- a/git/hooks/update-script._irkerhook.py_ +++ b/git/hooks/update-script._irkerhook.py_ @@ -336,7 +336,14 @@ class GitExtractor(GenericExtractor): parent = '' if self.new: # Generate a list of changed files that are part of uniquely new commits. - parent = do("git rev-list --reverse -n 1 " + shellquote(commit.commit) + " --not --branches=" + shellquote("*") + " --tags=" + shellquote("*")) + parent = do("git rev-list --reverse " + shellquote(commit.commit) + " --not --branches=" + shellquote("*") + " --tags=" + shellquote("*")).split("\n") + # Take the first element only (oldest uniquely new commit). + parent = parent[0] + # Fetch its parent. That's a tricky operation. rev-parse won't do + # for grafted commits, so try to use something... safe. I guess. + parent = do("git cat-file -p " + shellquote(parent) + " | awk " + shellquote ('NR > 1 {if(/^parent/){print $2; next}{exit}}')).split() + # Take the first parent, again. + parent = parent[0] commit.files = do("git diff-tree -r --name-only " + shellquote(parent) + " " + shellquote(commit.commit)) elif self.rebase == '': commit.files = do("git diff-tree -r --name-only " + shellquote(commit.commit)) -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/maintenancescripts.git