我认为我的变更集可能发生了一些不好的事情.
为了记录,我之前使用过git,hg和svn并取得了一般成功.我对bzr的理解不太完整.
这是我的(Windows XP):
1)使用bzr的svn checkout创建的文件夹.称之为稳定
2)从我用于开发的文件夹中分支出来的文件夹.称之为开发
我的计划是在开发分支上使用commit --local来跟踪变化,并且它正在起作用.
然后,我做了'bzr更新'(因为它在我试图推动时抱怨).当时,stable有一个更旧的代码副本.那么,现在开发有相同的旧版本.'bzr log'没有显示我本地提交的任何证据!
有人可以向我解释发生了什么,以及我可以做些什么来恢复我的旧代码?
好的,我找到了.经过一些疯狂的搜索后,我在查看了另一个stackoverflow问题之后发现了密码"dead head": 执行bzr commit后丢失了一些代码--local,bzr pull,bzr commit
但是,他们提出的解决方案并不适用于我.什么工作,发现在 http://chrismarinos.com/don-t-loose-your-head-with-bazaar/
最后的答案是使用heads --all找到修订版ID,然后使用pull get get所有修订:
bzr heads --all
bzr pull --overwrite -r revid:<revision-id>
Run Code Online (Sandbox Code Playgroud)
我的所有代码都回来了,现在备份了3到4次.
老实说,我不能说这会发生什么 - 老实说看起来就像是一个(听起来很灾难性的错误)的行为,除非你做了类似的事情,bzr pull --overwrite或者做了bzr revert一个bzr pull有冲突的事情.
首先,看看你是否可以可靠地复制这个问题.但是,是否可以这样做,提交针对bzr的错误报告,以便可以跟踪此问题.此外,在执行ANYTHING ELSE AT ALL之前,请备份您在这些分支中的数据.如果您一直在共享存储库中工作,请备份整个事情.这样,如果需要这么大的努力,它可用于法医恢复.但是,要获得更多帮助,您必须与Bazaar开发人员合作.在这里闲逛可能会有所帮助#bzr在FreeNode的IRC网络上寻求帮助的房间.正如寻求IRC支持一样,耐心是关键,即使您所处的情况非常紧急.他们可能会给你一些关于如何挖掘这些提交的Python代码或说明,他们也可以告诉你如何找出发生了什么.
这就是说,我通常不喜欢这样做开发的时候,是我有一个未绑定的"上游"分支,然后不管分支我工作英寸当我与我的变更完成后,我会从上游拉,合并我分支到结果树中,然后向后推.例如:
$ bzr init-repo project; cd project
$ bzr branch bzr+ssh://example.org/srv/bzr/project/trunk trunk
$ bzr branch trunk my-feature-branch
$ cd my-feature-branch
... work, commit; work, commit; ...
$ cd ../trunk
$ bzr pull
$ bzr merge ../my-feature-branch
... resolve any merge conflicts here, if any ...
$ bzr ci -m 'Merge in my-feature-branch'
$ bzr push :parent
Run Code Online (Sandbox Code Playgroud)
这样做也可以使你的工作与upsteam分支分开,直到你准备好合并并推送它.它确保您的本地分支机构永远不会被覆盖.
| 归档时间: |
|
| 查看次数: |
1181 次 |
| 最近记录: |