Re: [PATCH] git-filter-branch: Add an example on how to remove empty commits

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Wed, 29 Oct 2008, Petr Baudis wrote:

> +To remove commits that are empty (do not introduce any change):
> +
> +------------------------------------------------------------------------------
> +git rev-list HEAD | while read c; do [ -n "$(git diff-tree --root $c)" ] || echo $c; done > revs
> +
> +git filter-branch --commit-filter '
> +  if grep -q "$GIT_COMMIT" '"$(pwd)/"revs';
> +  then
> +    skip_commit "$@";
> +  else
> +    git commit-tree "$@";
> +  fi' HEAD

You would not need to use the temporary "revs" file by using something 
(totally untested, of course):

git filter-branch --commit-filter '
  if git diff-tree --exit-status -q "$GIT_COMMIT";
  then
    git commit-tree "$@";
  else
    skip_commit "$@";
  fi' HEAD

Of course, you could also mention that you could use

	git log --cherry-pick -p --pretty=format: ..<branch>@{1}

to verify that all skipped commits had empty diffs.  That one is also 
totally untested.

Ciao,
Dscho

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux