Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Version control 当我执行hg pull和hg更新时,将更改和添加哪些文件_Version Control_Mercurial_Dvcs_Pull - Fatal编程技术网

Version control 当我执行hg pull和hg更新时,将更改和添加哪些文件

Version control 当我执行hg pull和hg更新时,将更改和添加哪些文件,version-control,mercurial,dvcs,pull,Version Control,Mercurial,Dvcs,Pull,因此,在Subversion中,当我执行svn up时,我会得到一个添加、修改、删除和冲突的文件列表 当我做一个hg pull然后hg up-v时,它只显示一个列表:getting file.ext,但我无法知道该文件是新的还是已经存在。如果文件被添加、修改或删除,有没有办法让Mercurial显示相同种类的元数据 Mercurial是否提供执行我请求的任何功能?hg incoming--stat命令执行与您请求的类似的操作。另外,如果您要更新到新版本,您可以执行hg diff--git-r,它

因此,在Subversion中,当我执行
svn up
时,我会得到一个添加、修改、删除和冲突的文件列表

当我做一个
hg pull
然后
hg up-v
时,它只显示一个列表:
getting file.ext
,但我无法知道该文件是新的还是已经存在。如果文件被添加、修改或删除,有没有办法让Mercurial显示相同种类的元数据


Mercurial是否提供执行我请求的任何功能?

hg incoming--stat命令执行与您请求的类似的操作。另外,如果您要更新到新版本,您可以执行
hg diff--git-r
,它会给您一个显示哪些文件是新文件的diff。

Omni有您的答案,我投了赞成票,但只是为了显示所有选项:

拉前

  • hg incoming#显示您将获得的变更集
  • hg incoming--verbose#显示您将获得的变更集,包括每个变更集的文件列表
  • hg incoming——补丁显示了您将获得的所有变更集的全部差异
拉取(但不更新)后:

  • hg log-r.:提示#显示您得到的变更集
  • hg log--verbose-r.:tip#显示您得到的变更集,包括每个变更集的文件列表
  • hg log——patch-r.:trip#显示所有变更集的完整差异

使用status命令列出工作副本与其父版本之间或任何两个版本之间的文件状态更改。它提供如下输出:

$ hg status --rev .:tip
M hgext/keyword.py
M mercurial/cmdutil.py
M mercurial/commands.py
M mercurial/context.py
M mercurial/patch.py
A tests/test-encoding-align
A tests/test-encoding-align.out
与此更新相对应的:

$ hg update -v
resolving manifests
getting hgext/keyword.py
getting mercurial/cmdutil.py
getting mercurial/commands.py
getting mercurial/context.py
getting mercurial/patch.py
getting tests/test-encoding-align
getting tests/test-encoding-align.out
7 files updated, 0 files merged, 0 files removed, 0 files unresolved
编辑:您可以创建一个
预更新
钩子,以始终将此信息作为更新的一部分。我现在正好在Windows上,这个钩子起作用了:

[hooks]
preupdate = hg status --rev .:%HG_PARENT1%

在类Unix系统上,将
%HG\u PARENT1%
替换为
$HG\u PARENT1
。这将使Mercurial体验更具颠覆性,比如:-)

您可以使用
hg incomming
和bundle,将Martin的答案应用于您尚未实际执行的更改

> cd myrepo
# Get the latest revision in my copy
> hg tip
changeset:   17:5005ce2dc418
.
.
.
# Get a bundle file of changes, but don't put them in myrepo yet
> hg incoming --bundle changes.bundle
# Overlay the bundle on myrepo and do hg status as if I've already pulled
> hg -R changes.bundle status --rev 17:tip
A addedfile
M modifiedfile
.
.
.
# Changes are good! Pull from bundle
hg pull changes.bundle

hg incoming——stat仍然没有告诉我一个文件是否是新的,我必须在每个文件上运行hg diff才能看到。最糟糕的情况是,我可以在更新之前递归目录,并在更新之后查看新内容,但这看起来太糟糕了。让我惊讶的是,这些信息更容易获得available@James-我想知道“日志”的专用模板是否无法处理此问题。我会调查一下的,谢谢!我可以做一个“hg id”,将我当前的修订版变成“hg pull”,然后是“hg stat--rev PREVIOUS_rev:tip”,它完全符合我的要求詹姆斯:谢谢你接受这个答案,我很高兴我能帮上忙!:-)有没有办法获取已更新的7个文件?有哪些?