cod*_*ing 9 mercurial branch dvcs kiln
因此创建了一个新分支,我们对代码库进行了一些重大更改.
现在我们要合并,但在此之前我想获得分支中已更改的所有文件的列表.
我怎样才能获得文件列表?我试过了:
hg status --change REV
Run Code Online (Sandbox Code Playgroud)
但我不确定这是否是我想要的,因为我希望在此分支中更改所有文件而不是分支中的特定修订.
顺便说一句,我如何查看修订号?
试试吧
$ hg status --rev "branch('your-branch')"
Run Code Online (Sandbox Code Playgroud)
获取分支上第一个和最后一个变更集之间的更改(hg status将隐式使用,min(branch('your-branch'))并max(branch('your-branch'))在您为其提供一系列此类修订时).
既然你要合并,你应该看看
$ hg status --rev default:your-branch
Run Code Online (Sandbox Code Playgroud)
看看分支和之间发生了什么变化.这将向您显示已完成的修改,并过滤掉由于合并而在分支上执行的任何修改.defaultyour-branchdefault
如果您的历史记录如下所示,这是必要的:
your-branch: x --- o --- o --- o --- o --- o --- y
/ / /
default: o --- a --- o --- b --- o --- c --- o --- o --- d
Run Code Online (Sandbox Code Playgroud)
您已经合并default到您的分支机构几次.合并default到你的分支是正常的,因为你想定期整合来自该分支的最新东西,以避免分支漂移太远.
但是如果引入了一个新文件default并稍后合并到B那里,那么你真的不想在hg status输出中看到它.如果你这样做,你会看到它
$ hg status --rev a:y
Run Code Online (Sandbox Code Playgroud)
因为该文件不存在a,但存在于y.如果你这样做
$ hg status --rev d:y
Run Code Online (Sandbox Code Playgroud)
然后你不会在输出中看到该文件,假设它存在于两个头中.
您在评论中写道,您正在使用Kiln存储库.当他们说"分支"时,他们的意思是"克隆",但上述内容仍可根据您的情况进行调整.所有变更集都将在default 指定的分支上,但这没关系.
在"branch"存储库的本地克隆中运行以下命令:
$ hg bookmark -r tip mybranch
Run Code Online (Sandbox Code Playgroud)
这标志着当前的提示作为头mybranch.然后从主存储库中提取所有变更集:
$ hg pull https://you.kilnhg.com/Repo/public/Group/Main
Run Code Online (Sandbox Code Playgroud)
然后,将新提示标记为主存储库的提示:
$ hg bookmark -r tip main
Run Code Online (Sandbox Code Playgroud)
你现在可以跑
$ hg status --rev main:mybranch
Run Code Online (Sandbox Code Playgroud)
看之间的变化main和my-branch.如果你想看看你在分支机构上做了什么,使用
$ hg status --rev "::mybranch - ::main"
Run Code Online (Sandbox Code Playgroud)
该::mybranch部分将选择作为祖先的变更集mybranch- 这是您的所有新工作,加上您分支之前的旧历史记录.我们删除旧历史- ::main.在较旧版本的Mercurial中,您可以使用hg log -r -r mybranch:0 -P main.
| 归档时间: |
|
| 查看次数: |
1482 次 |
| 最近记录: |