2011-04-15 148 views
1

我刚刚第一次进入Mercurial存储库,现在我正试图查看是否可以从存储库中删除目录。我删除该目录从我的本地文件系统,并试图从Ubuntu的这个命令:从Mercurial存储库中删除目录

sudo hg push https://alex.genadinik:[email protected]/hg/ "some comment" 

,我得到的错误:

hg push: invalid arguments 

但是,这是我最初用于推动命令。我在这里做错了什么?

这里是我的尝试:

$ sudo hg commit -m "removing file" 
$ sudo hg push 
abort: repository default-push not found! 

为什么会发生呢?

+0

@Genadinik:'我从我的本地文件系统中删除了该目录'您执行了“hg remove”(或忘记),还是仅仅是一个文件系统删除? – dls 2011-04-15 20:24:26

+1

与推送命令有关的“某些评论”部分应该是什么? – 2011-04-15 20:43:05

+0

@dls我刚刚从文件系统中删除它。没有意识到我必须做hg删除。删除hg是否应该遵循文件系统中的删除操作? – Genadinik 2011-04-15 20:45:41

回答

4

你应遵循的程序是:

  1. hg remove or hg forget the files。 Mercurial不会跟踪目录,因此如果从特定目录中删除所有文件,目录本身将从Mercurial的角度停止存在。

    最后,一旦跟踪了文件,您将无法使用标准的rmdel命令将其删除,也无法从文件浏览器中将其删除。这样做会导致Mercurial将该文件标记为“丢失”,这意味着它仍在被追踪。

    完成此操作后,您可以运行一个hg status,它应该显示您刚刚用R前缀删除的所有文件。

  2. 提交删除。像任何其他修改一样,hg remove/forget是在推送之前需要提交的更改。

  3. 推新的变更
+0

我刚刚发布了我尝试推送新变更集后发生的事情。关于为何发生新错误的任何想法? – Genadinik 2011-04-15 20:52:40

+0

@Genadinik:您可能缺少默认推送路径。尝试在您的.hgrc或mercurial.ini文件中添加'[paths] default =/path /或/ url/to/repo'',或者像在原始文章中那样指定整个推送路径。 – dls 2011-04-15 20:59:58

+0

在我的存储库目录中我只有一个名为.hg的文件 - 哪里是.hgrc或mercurial.ini文件存在的适当位置? - 谢谢! – Genadinik 2011-04-15 21:53:44

0

你需要指定库?你不能只用'hg push'吗?除非这不是您最初克隆的存储库?通常你也希望在提交中做出你的评论,不是肯定的,但我不认为你可以推动。 'hg commit -m“我的评论”'

另外,确保您在推送之前已经提交了更改。

因此,在您的情况下,我会将此视为您在克隆了初始存储库后应该执行的操作。

rm directory 
hg commit -m "my commit message" 
hg push 

它会提示您输入凭证。

+2

我不认为执行文件系统删除(如'rm')将工作。这将导致Mercurial将文件标记为'missing',该文件在帮助文本中被定义为'由非hg命令删除,但仍然被跟踪'。你将不得不使用'hg忘记'或'hg remove'。 – dls 2011-04-15 20:35:55

+0

@dls我认为你是对的。我使用的工具太多了。你将不得不使用hg忘记为了这个工作。谢谢。 – 2011-04-15 20:43:11

+0

忘记命令导致系统删除我需要删除的文件。 – Genadinik 2011-04-15 20:47:58

0

push命令不带注释参数。你错误地记住了你所做的。你可能做了一个提交(可以使用-m进行注释),然后推送,这需要一个URL而不是注释。错误是告诉你摆脱那个评论。

相关问题