2010-03-29 36 views
1

我在一堆不同的计算机上的一堆不同目录中有一堆小项目。我也有一个远程服务器,我可以高兴地bzr + ssh到。 (1)在bzr控制下放置一个目录(“bzr init; bzr add” - 好吧,不用担心);(2) (2)将该目录放置在远程服务器上(当然,“bzr push”起作用); (3)将整个事物转换成一个共享的存储库(um ...?); (4)使服务器拥有主副本(um?...);和(5)能够从其他地方以标准SVN格式检查出它。在bzr下快速放置目录作为远程存储的共享库

我看到的每一个教程都是错误的(“我是服务器管理员”)的方向:它首先告诉你在登录到远程服务器时挥动你的魔法init-repo魔杖,然后移动文件等等;但总的来说,我不想多做一些繁琐的工作。

我见过人们这样做的“正确”的方式 - 四五条线,它的全部设置,从一个目录充满本地机器上的文件,并结束与同一目录仍然在那里作为一个远程共享仓库的签出(作为奖金,通过bzr + ssh完成所有远程工作,因此您不必在单独的shell中远程登录)。他们是如何做到的呢?

回答

2

我会说,你有步骤(2)和(3)颠倒。我还假设你有sftp访问远程机器上的一个目录,该目录将存放共享存储库,比如sftp:// rkerr @ server/home/source。

I can't test this, but I think it would go something like: 
(1) bzr init; bzr add 
(2) bzr init-repo --no-trees sftp://[email protected]/home/source/sharedRepo/ 
(3) bzr push --remember sftp://[email protected]/home/source/sharedRepo/branchName 
(4) start calling the server version the master copy* :) 
(4.5) login elsewhere 
(5) bzr checkout sftp://[email protected]/home/source/sharedRepo/branchName 

*其他有用的东西,实在应该在最初的分支的.bzr/branch/branch.conf改变* _location性能。实际上,DVCS的整个观点是没有一个分支真的需要成为“主”分支。设置位置意味着Bazaar可以智能地猜测你想要推送,合并,拉出哪个分支。

+0

这绝对是我现在正在做的改进,谢谢!推之后,我还需要绑定到远程副本,不是吗? (至少如果我想要CVS风格的“你可能不会提交,除非服务器更新”模式,在这种情况下,我这样做,因为部分我正在做这个备份的目的。) – 2010-03-30 17:07:04

+0

是的,你是正确的绑定到服务器分支。绑定分支之后,在本地提交成功之前,远程提交必须成功。 – 2010-03-30 19:39:32

+0

与其他任何人一样,我们只需提醒自己:除非目录为空,否则在第一步中您还需要'bzr add'后的'bzr commit'; 'bzr + ssh://'可以正常工作; push后的'bzr bind'也取得分支名称。 – 2011-11-22 15:25:57