有没有类似Git默认分支的Bazaar等效分支?

4
使用git,我可以创建分支概念上,而无需分支我的目录结构。当我在分支之间切换(假设所有内容都已提交),它会更改我正在处理的文件的内容,以反映“当前”分支的状态。
我非常喜欢能够这样做-它非常适合我的工作流程,特别是当我使用Visual Studio时。
但是我是Bazaar粉丝。我喜欢它主要是用Python编写,我喜欢GUI的美观和简单(对我来说),我喜欢它非常跨平台。
因此,我的愿望是可能的,我的问题是:Bazaar是否可以模拟git的行为?如果可以,如何实现?

这个链接可能会有所帮助:http://stackoverflow.com/questions/1645672/local-branches-with-bazaar/1910439#1910439。 - VonC
我之前看过这个,刚刚尝试了一下。除非我漏掉了什么,它并没有改变目录中当前的内容 - 只允许你克隆分支,而这是我已经能做到的,所以没什么了不起的。 - Wayne Werner
1个回答

3

我在Bazaar中使用(重量级)检出,所以不确定你的情况是否完全相同,但你应该能够通过使用switch命令来完成这个操作。例如:

mkdir source-repo
bzr init-repo --no-trees source-repo
bzr init source-repo/trunk
bzr co source-repo/trunk workdir
cd workdir
# Hack hack hack
bzr add
bzr ci -m "Done some stuff"
# Now create a branch and change the working directory files to match it
bzr switch -b my-new-branch
# We're now working on a checkout of ../source-repo/my-new-branch
# Hack hack hack
bzr add
bzr ci -m "Working on the branch"
# Now go back to the trunk (no -b as we're not creating the branch)
bzr switch trunk
# Working directory files now match the trunk branch
# Hack hack hack
bzr add
bzr ci -m "Changes to trunk"
# Merge in the changes from my-new-branch
bzr merge ../source-repo/my-new-branch
bzr ci -m "Merged my-new-branch"

当然,您也可以使用分支的绝对路径,但是相对路径可以节省很多打字。不幸的是,合并命令需要完整的路径。
这符合您要求的内容吗?

太好了!正是我想要的。还有一个小问题 - 你知道除了 rm -rf ../source-repo/my-new-branch 之外,是否还有其他删除分支的方法吗? - Wayne Werner
不:当我真正需要删除一个分支时,我倾向于使用rm -rf。 鉴于该分支仅存储更改(其余代码和历史记录存储在共享源存储库中:在这种情况下为source-repo / .bzr),它们占用的空间非常小,因此我倾向于将它们留在那里。 如果您想整理目录结构,可以将它们组织在子目录或带有前缀的名称中。 - DrAl

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