将目录与git存储库同步;对于跟踪dropbox之类的“哑”协作软件特别有用
gitobox的Python项目详细描述
此程序将dropbox目录(或任何目录)与git存储库同步。目录中的任何更改都将在指定的分支上创建新的提交,对该分支的推送将更新目录。
请注意,这与将.git文件夹放入Dropbox不同。在这里,dropbox中没有任何与git相关的内容,gitobox为您提供了一个单独的双向同步git存储库,您可以使用它来代替dropbox(或者继续使用dropbox并将git历史记录保存起来以备将来参考)。
部署指南
首先,它打算部署在某种服务器或“总是在”计算机上。虽然gitobox可以在其他设置中正常工作,但它无法检测和记录脱机时发生的版本,因此在恢复同步时,您将得到一个“大提交”,从而使历史记录变得不那么有用。
如果安装了python并安装了pip,那么安装gitobox很容易:
$ pip install gitobox
只需创建一个将被同步的git存储库:
$ git init dropbox-project
自动提交将使用本地标识创建,因此您可能还需要设置该标识:
$ pushd dropbox-project $ git config user.name "dropbox" $ git config user.email "gitobox@my-own-server" $ popd
然后启动gitobox:
$ gitobox ~/Dropbox/my-project dropbox-project/.git
然后你可以克隆那个仓库和tada!您可以使用git而不是dropbox:
$ git clone my-working-copy dropbox-project
常见问题解答
为什么要做吉托博克斯?
因为我们都有不知道如何使用git的朋友/同事,有时你不得不和他们一起工作。
有效吗?
是的!虽然不是很彻底(自动?)经过测试,它确实有效。
我能用Linux以外的东西吗?
是的!通过使用watchdog,现在应该支持所有平台。
我能用点别的东西吗?
任何可以在新更改到来时通知gitobox的版本控制系统都应该可以工作;您只需编写通知、签入和签出代码的替换。我自己也不打算这么做,但欢迎使用补丁!
除了Dropbox我还能用别的吗?
是的,gitobox不知道dropbox是什么,它只是监视一个目录。这是通过rsync、ftp、dropbox、google drive还是bittorrent sync进行更改并不重要。
尝试从同步系统中获取元数据(即进行更改的用户的名称)可能会很酷,但这还没有编写。
是否可能发生冲突?
是的,这是因为Dropbox没有锁定机制。git存储库在目录更改时将不接受推送,对于git端的冲突,将发生通常的“非快速前进;先拉”行为。然而,如果有人在git写入dropbox时更改了dropbox,冲突就会发生,并将由dropbox自己的机制解决。这将在git中创建一个新的提交,因此您可以从git中修复它(但是冲突的文件将并排放置,即dropbox方式)。gitobox还试图检测到这一点,并在您按下时向您发出警告,因此请阅读这些“remote:”消息!