Mercurial有没有类似于git clean的功能?

39

hg clean似乎不存在,这让我有点困扰。这是Mercurial没有的功能,还是他们只是用不同的名称命名?

4个回答

44

核心Mercurial软件包中没有类似于git clean的功能。

然而,hg purge扩展可以实现你想要的功能。

有一个开放问题,将此扩展作为核心软件包的一部分。


扩展维基页面上写着:“此扩展目前与Mercurial一起分发。”自从它发布以来,我就已经安装了它。我不确定是哪个版本引入了它。 - Tim Post
1.1.2 版本已经发布,之前的版本不确定。 - Tim Post
4
为什么不像git clean一样限制在当前目录及其子目录中?我第一次运行hg purge时感到非常惊讶。 - Sharpie
1
即使此扩展已包含在内,您仍需在使用前激活它。只需在您的主目录中创建一个.hgrc文件(例如Win 7:c:\Users(yourusername).hgrc),并添加以下内容:[extensions] purge = - MIWMIB
为了更加清晰地理解@FrankGorman的评论,请在您的~/.hgrc文件中添加[extensions] purge = - Benjohn
显示剩余2条评论

12

扩展已经包含在Mercurial中,但是您仍需激活它。

操作非常简单,只需要在您的主目录下创建一个.hgrc文件(例如Win 7:C:\Users\«您的用户名»\.hgrc),并将以下内容添加到该文件中:

[extensions] 
purge =

对于大多数其他桌面操作系统(Unix,Gnu/Linux,Mac osx,BSD等),~/.hgrc是主目录。


7

我不使用git进行代码库管理。但是,如果我要猜测的话,我认为hg purge可能是您要寻找的内容。


5
如果您使用的是基于Linux的系统(或Windows的Cygwin),您可以执行以下操作:
hg status | grep "^?" | xargs rm -rf

如果这个方法有效,您可以将以下内容放入您的~/.hgrc文件中:
[alias]
clean = !hg status | grep "^?" | xargs rm -rf

那么只需运行:

hg clean

我在Windows上使用Cygwin测试了这个(在Linux上也应该可以)。

1
这并不包括未被跟踪的文件;git clean -fxd。 - FelipeC
1
不需要使用grep。clean = !hg status -un0 | xargs -0 rm - MGP

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接