Re: [PATCH] hg-to-git: handle an empty dir in hg by combining git commits
- From
Mark Drago <markdrago@gmail.com>
- Date
- Dec 6, 2007, 12:50 UTC
- Message-ID
- <af675f7f0712060450g2e9d0496y93749c2209bd0f0c@mail.gmail.com>
- In-Reply-To
- <7veje11v7f.fsf@gitster.siamese.dyndns.org>
On Dec 5, 2007 2:01 AM, Junio C Hamano <gitster@pobox.com> wrote:
Show 23 quoted lines
> > Junio C Hamano <gitster@pobox.com> writes: > > > Mark Drago <markdrago@gmail.com> writes: > > > >> This patch will detect that there are no changes to commit (using git-status), > >> and will not perform the commit, but will instead combine the log messages of > >> that (non-)commit with the next commit. > > > > I think a better approach would be to implement --no-tree-change-is-ok > > option to git-commit, strictly for use by foreign scm interface scripts > > like yours. It does not usually make sense to record a commit that has > > the exact same tree as its sole parent commit and that is why git-commit > > prevents you from making that mistake, but when data from foreign scm is > > involved, it is a different story. We are equipped to represent such a > > (perhaps insane, perhaps by mistake, or perhaps done on purpose) change > > and it is better to represent it bypassing the safety valve for native > > use. > > So I did "git commit --allow-empty". With that, perhaps the following > will fix the issue? > > I won't be commiting this myself until I hear a positive Ack.
I gave this a test and it works perfectly well. Commit away.
Thanks, Mark.
Show 18 quoted lines
> ---
> contrib/hg-to-git/hg-to-git.py | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/contrib/hg-to-git/hg-to-git.py b/contrib/hg-to-git/hg-to-git.py
> index 7a1c3e4..9befb92 100755
> --- a/contrib/hg-to-git/hg-to-git.py
> +++ b/contrib/hg-to-git/hg-to-git.py
> @@ -211,7 +211,7 @@ for cset in range(int(tip) + 1):
> os.system('git-ls-files -x .hg --deleted | git-update-index --remove --stdin')
>
> # commit
> - os.system(getgitenv(user, date) + 'git-commit -a -F %s' % filecomment)
> + os.system(getgitenv(user, date) + 'git commit --allow-empty -a -F %s' % filecomment)
> os.unlink(filecomment)
>
> # tag
>