1

我是 VCS 的新手,我只是想弄清楚如何在我的情况下使用 Bazaar。我的情况是,我是一个独立的 Web 开发人员,在一个网站上工作,该网站由一个实时网站(例如 www.mysite.com)和一个登台/开发网站(例如 dev.mysite.com)组成。我正在使用 Bazaar Explorer,因为我不是真正的命令行类型的人。我只是在一台主计算机上工作,然后通过 FTP 将文件上传到 Web 服务器。我在本地 Windows 计算机上安装了 Bazaar。

因此,首先我在本地计算机上创建了一个 Bazaar 项目。我坚持使用默认的“功能分支”选项,因为 Bazarr 文档说这最适合小型项目(但即使在阅读文档后我也没有完全掌握工作区模型之间的区别)。这创建了一个包含子文件夹trunk 和.bzr 的文件夹(我称之为_Source Control)。我将所有项目文件(即网站文件)复制到主干并进行了初始提交。

现在我的第一个问题是我应该直接处理这些文件还是需要创建另一个分支来处理?

这个工作流程是一种明智的方法还是有明显更好的方法?:

  • 处理主干中的一些文件
  • 在我检查错误、功能等时,将更新的文件通过 FTP 传输到暂存站点。
  • 一旦我完成了某个功能,提交我的更改
  • 使用 bzr-upload 插件将最新版本上传到实时网站

那么我发现最新的更新引入了问题,我想将网站回滚到之前的版本,我该如何处理呢?是不是这样:

  • 在 Bazaar 中恢复到以前的版本
  • 使用 bzr-upload 插件将此修订上传到实时网站
  • 那么如何恢复到最新版本以便我可以解决问题?这是我需要分支的地方吗?
  • 一旦我再次更新文件以解决问题,请使用 bzr-upload 插件提交并上传最新版本到实时网站

最后一个问题,Checkout 在我的情况下是否相关?

4

2 回答 2

2

Bazaar Explorer的Feature branches选项创建了一个所谓的Shared Repository和一个在其中调用的单个分支trunk(称为Repository Tree)。在您的示例中:

  • _Source Control==共享存储库
  • _Source Control/trunk==存储库树

这个想法是,在这个设置中,您可以在 旁边创建多个分支trunk,它们将通过在共享存储库中共享内容来有效地存储修订数据,简而言之。

如果您是初学者,请不要担心分支。在某些时候,它可能会自然而然地来到你身边。例如,您意识到您想做一些实验性的事情,但又不想弄乱您的后备箱。显而易见的解决方案是创建一个分支。

现在关于您的工作流程:

  • 我认为您可以将bzr upload插件用于临时站点和实时站点。

  • 要将您的实时站点回滚到以前的版本,请使用bzr upload -rREV --overwriteREV要回滚到的修订版本。使用--overwrite那里看起来很脏,而且很可能是。但这是它对我有用的唯一方法,我认为这是我的插件版本(1.0.1dev)中的一个错误,我建议先尝试不使用该标志。

  • 要修复bug,不需要本地回滚,只需修复bug并确认,然后再次上传,bzr upload不带其他标志,使网站更新到最新版本。

与 Bazaar 合作的方式有很多种。你可以实现一个漂亮而复杂的工作流,或者使用这个有点脏但简单易懂的工作流。如果您还有其他问题,请告诉我。

不,您不需要checkout您描述的设置。

于 2013-06-20T19:11:09.407 回答
2

在 Bazaar 中,单个分支是项目文件的线性历史。只要您想同时处理项目的多个版本,就需要多个分支。当涉及多个开发人员时,这自然会发生,但对于单人项目也很有用。

例如,它允许您继续开发新功能作为功能分支的一部分,同时在主分支上添加、测试和部署错误修复。功能完成后,可以将其合并回主分支。同样,如果您想尝试一些您可能希望或可能不希望将其作为主要代码库的一部分的东西,那么为此建立一个实验分支是一个好主意。

对于简单的项目,您可能只需要一个主分支,但无论如何熟悉分支是个好主意,因为它有许多非常实用的用例。

为了处理您描述的“问题”场景:首先,获取您拥有的最后一个工作版本。有很多方法可以做到这一点:

  • bzr checkout可用于在不同的工作目录中创建特定分支和修订的新签出。然后,您将拥有一个包含旧版本的目录和一个包含新版本的目录。
  • bzr branch与此目的大致相同bzr checkout,但还会根据指定的修订在新目录中创建一个独立的分支。如上所述,如果您需要同时处理旧版本和新版本,这将非常有用。
  • bzr update可用于将当前目录切换到不同的修订版。然后,您可以做任何您想做的部署旧版本并bzr update再次使用以切换回最新版本。
于 2013-06-20T17:20:45.407 回答