wag*_*639 9 software-rec dropbox version-control
我想设置一个类似于 Dropbox 的同步存储库。
目标/要求:
基本上,我希望能够使用多台计算机,可能具有不同的操作系统,并且能够访问、使用和同步所有计算机上的文件。我还想在未连接到网络时拥有存储库的本地副本(就像我在笔记本电脑上工作一样,我想保留一个本地存储库以保持修订并稍后与“主”存储库合并)。
例如,我白天在我的网络之外在我的笔记本电脑上编辑几张图片,但是当我回到家时,我想将更改(包括增量更改)与家里的台式机同步。
我也希望我的室友也能够访问和使用这个存储库,但限制对某些文件的访问。例如,我可能想用它来备份财务记录,但不希望他们访问这些文件。
我是一名程序员,熟悉 SVN,但我知道这不是最合适的,因为它不能很好地处理二进制文件并且没有保留本地存储库。我知道存在更好的选择,但我对它们的了解还不够充分,无法选择最好的选择。
我建议使用 git。只需为您的财务数据和“共享”数据设置不同的存储库。通过 ssh 授予访问权限。
对于颠覆,您可以拥有一个本地存储库 - 只需在本地创建一个即可。然后,您可以使用 svnsync 定期与远程存储库同步。或者反过来做,使用远程仓库并在本地同步(就像我做备份一样)。
Svn 确实可以很好地处理二进制文件,或者至少与任何其他 SCM 一样好。二进制文件的问题在于它们很难区分,这不是 svn 的失败,只是二进制文件的一个属性。
Git或Mercurial(或Bazaar)听起来更适合您的需求,因为它们是分布式 SCM,您始终在本地存储库上操作,然后将更改推送到远程存储库。Mercurial 可能是最适合 Windows 的,因为你有很好的 GUI 工具;Bazaar 是 Canonical 开发的,Git 是 Linus 开发的。这就是任何人关心的它们之间的所有差异:) 有比较 在网络上——除了 git 不是原生 Windows 之外,Mercurial 可能更好,因为它支持更多的“你拥有的就是远程用户拥有的”,而 Git 更像是“远程用户拥有的就是你让他们拥有的”鉴于您的要求,这将需要您付出更多努力(当然,两者都可以共享全部或子集,但 Mercurial 限制子集比 Git 共享所有子集更容易)
如果您想使用“两者”,您可以使用git-svn或SVK,它们将分布式功能添加到 SVN。
| 归档时间: |
|
| 查看次数: |
1545 次 |
| 最近记录: |