How can I force mercurial to accept an empty commit

爱⌒轻易说出口 提交于 2019-11-29 13:32:49

You can skip this commit if you add a local svn.$REVNUM tag to the head revision (=the revision which also has the svn.($REVNUM-1) tag now). Then you can continue with hgpullsvn.

Say your import is at this state (last imported rev is 15800, the property-only rev is 15801):

$ hg log -l1
changeset:   1234:123456789abc
branch:      trunk
tag:         tip
tag:         svn.15800
parent:      1233:cba987654321
user:        Rudi <rudi@example.com>
date:        Tue Aug 24 11:42:23 2010 +0200
summary:     Foobar

$ svn info
Path: .
URL: svn+ssh://example.com/foobar/trunk
Repository Root: svn+ssh://example.com/foobar
Repository UUID: 26c7c274-8ed1-4e7f-bdc1-5c767a948b10
Revision: 15801
Node Kind: directory
Schedule: normal
Last Changed Author: rudi
Last Changed Rev: 15801
Last Changed Date: 2010-08-24 14:00:29 +0200 (Di, 24 Aug 2010)

Then you simply add the svn.15801 tag:

$ hg tag -l -r 123456789abc svn.15801

and contunie to import.

But make a backup before you try this.

in3xes

I think you can't do empty commit in mercurial. Here's a thread explaining why.

Sniggerfardimungus

When I've needed empty commits in p4 and hg before, I've simply used a file that was set aside to 'be' the empty commit. Just dump a random string of some sort (I usually use the time and date) into the throwaway file, and hg commit away....

As per @vorrtex's comment on the original question, the simplest method to force an empty commit in Mercurial is as follows:

  1. Add a new file (say, Dummy.txt) and commit.
  2. hg forget Dummy.txt
  3. hg commit --amend

This will remove Dummy.txt from the previous commit, leaving it empty. (You can use e.g. TortoiseHg for step 1 but you'll need to use a command line tool for steps 2 and 3.)

I'm adding this as a new answer because when scanning this thread originally I missed the comment, and the existing answers don't create a truly empty commit.

Perhaps, the following will not help you in the situation, but perheps other reader.

You can make an "empty" commit via import of a nearly empty patch. I exported a patch, removed all changes in it, leaveing only 3 lines (diff..., ---... and +++ ...), and imported it with hg import --bypass --message ...

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!