我想轉換一個SVN回購hgsvn
,我有一些提交SVN屬性在哪裏修改,但由於Mercurial不使用這些,它認爲這是一個空提交併中止。有沒有辦法強制這個hg commit
接受一個不會改變任何東西的提交?我如何強制mercurial接受一個空的提交
我不太熟悉hgsvn
的內部破解它跳過空提交。
我想轉換一個SVN回購hgsvn
,我有一些提交SVN屬性在哪裏修改,但由於Mercurial不使用這些,它認爲這是一個空提交併中止。有沒有辦法強制這個hg commit
接受一個不會改變任何東西的提交?我如何強制mercurial接受一個空的提交
我不太熟悉hgsvn
的內部破解它跳過空提交。
如果您將本地svn。$ REVNUM標籤添加到頭版本(=現在也有svn。($ REVNUM-1)標籤的版本),則可以跳過此提交。然後你可以繼續使用hgpullsvn。
說你的導入是在這種狀態下(去年進口轉是15800,唯一的財產-REV爲15801):
$ hg log -l1
changeset: 1234:123456789abc
branch: trunk
tag: tip
tag: svn.15800
parent: 1233:cba987654321
user: Rudi <[email protected]>
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)
然後你只需添加svn.15801標籤:
$ hg tag -l -r 123456789abc svn.15801
和contunie導入。
但在嘗試此操作之前進行備份。
謝謝,這讓我超越了這個承諾。 – 2010-08-25 06:36:49
當我在p4和hg之前需要空的提交時,我只是使用了一個被放在'be'空的提交文件。只是轉儲一些隨機字符串(我通常使用的時間和日期)到一次性文件,並hg commit
了....
我認爲你不能做空mercurial提交。這裏是a thread explaining why。
也許,下面的內容不會幫助你在這種情況下,但是會使其他讀者失望。
您可以通過導入幾乎空白的補丁來進行「空」提交。我導出了一個補丁,刪除了其中的所有更改,只剩下3行(diff ...,... ...和+++ ...),並將其導入到hg import --bypass --message ...
根據@ vorrtex的評論對於原始問題,在Mercurial中強制空提交的最簡單方法如下:
Dummy.txt
)並提交。hg forget Dummy.txt
hg commit --amend
這將從先前刪除Dummy.txt
承諾,留下空。 (您可以使用例如TortoiseHg進行第1步,但需要使用命令行工具執行第2步和第3步。)
我將此添加爲新答案,因爲最初掃描此線程時我錯過了評論,現有的答案不會創建一個真正的空提交。
有一個破解:創建1個文件,提交,然後刪除該文件並使用修改。 – vorrtex 2013-07-31 11:27:26