我是VCS的新手,我只是想了解如何根据我的情况使用Bazaar。我的情况是,我是一个网站开发人员,他在一个网站上工作,该网站包含一个实时网站,例如www.mysite.com和一个临时/开发站点,例如dev.mysite.com。我正在使用Bazaar Explorer,因为我不是一个真正的命令行类型的人。我只是从一台主计算机上工作,然后通过FTP将文件上传到Web服务器。我在我的本地Windows计算机上安装了Bazaar。
首先,我在本地计算机上创建了一个Bazaar项目。我坚持使用默认的“功能分支”选项,因为Bazarr文档说这对小型项目来说是最好的(但是即使在阅读完文档后我也没有完全掌握工作区模型之间的差异)。这创建了一个文件夹(我称之为_Source Control),子文件夹trunk和.bzr。我将所有项目文件(即网站文件)复制到trunk中并进行初始提交。
现在我的第一个问题是我应该直接处理这些文件,还是需要让另一个分支继续工作?
这个工作流程是一种明智的方法还是有明显更好的方法?:
然后,我应该如何处理我发现最新更新引入问题的情况,并且我想将网站推回到以前的版本?是这样的:
最后一个问题,在我的情况下,Checkout是否相关?
答案 0 :(得分:2)
在Bazaar中,单个分支是项目文件的线性历史记录。只要您想同时处理项目的多个版本,就需要多个分支。当涉及多个开发人员时,这自然会发生,但对单人项目也很有用。
例如,它允许您继续开发新功能作为功能分支的一部分,同时在主分支上添加,测试和部署错误修复。功能完成后,可以将其合并回主分支。同样,如果你想尝试一些你可能想要或不想作为主代码库的一部分的东西,那么最好有一个实验分支。
对于简单项目,可能只需要一个主分支,但无论如何都要熟悉分支,因为它有许多非常实用的用例。
为了处理您描述的“问题”场景:首先,获取您拥有的最后一个工作版本。有很多方法可以实现这一目标:
bzr checkout
可用于在不同的工作目录中创建特定分支和修订的新签出。然后,您有一个包含旧版本的目录和一个包含新版本的目录。bzr branch
与bzr checkout
大致相同,但也会根据指定的修订在新目录中创建一个独立的分支。如果如上所述,您需要同时处理旧版本和新版本,这将非常有用。bzr update
可用于将当前目录切换到其他版本。然后,您可以执行任何想要部署旧版本的操作,并再次使用bzr update
切换回最新版本。答案 1 :(得分:2)
Bazaar Explorer的Feature branches
选项创建了一个所谓的共享存储库,并在其中创建了一个名为trunk
的分支(称为存储库树)。在您的示例中:
_Source Control
== 共享存储库 _Source Control/trunk
== 存储库树 我们的想法是,在此设置中,您可以在trunk
旁边创建多个分支,它们将通过共享存储库中的内容有效地存储修订数据,简而言之。
如果您是初学者,那么不要担心分支机构。在某些时候它可能会自然而然地来到你身边。例如,你意识到你想要做一些实验,但你不想弄乱你的行李箱。显而易见的解决方案是创建一个分支。
现在关于您的工作流程:
我认为您可以为暂存网站和实际网站使用bzr upload
插件。
要将您的实际网站回滚到以前的版本,请使用bzr upload -rREV --overwrite
,其中REV
是您要回滚的修订版。使用--overwrite
看起来很脏,而且很可能。但这是它对我有用的唯一方式,我认为这是我的插件版本中的一个错误(1.0.1dev
),我建议首先尝试没有那个标志。
要修复错误,无需在本地回滚,只需修复错误并确认错误,然后使用bzr upload
再次上传,而不使用其他标记,以使网站升级到最新版本。< / p>
与Bazaar合作的方式有很多种。您可以实现漂亮而复杂的工作流程,或使用这种有点脏但简单易懂的工作流程。如果您还有其他问题,请告诉我。
不,您在所描述的设置中不需要checkout
。