Git或Hg或任何现代VCS中的WebDAV自动版本控制

时间:2010-01-30 22:30:52

标签: git version-control webdav mercurial auto-versioning

我刚刚了解了SVN的WebDAV自动版本控制功能。虽然我知道这不是正确版本控制的替代品,但是消息记录了变更集,它让我感觉像是Dropbox的坚实而安全的替代品(减去漂亮的GUI和网页)。但是,由于自动版本控制中的提交很频繁,我认为Git或Hg更适合这种情况,因为它们的数据库更紧凑(尽管我想知道事物的分布式特性是否会使自动化变得难以解决冲突)。

就任何人都知道,这是一个使用Git或Hg实现的功能吗?

3 个答案:

答案 0 :(得分:9)

市场上有一个选项可以解决这个问题:

WsgiDAV是一个python WebDAV服务器,提供各种后端including the DVCS mercurial,以及其他一些时尚商店(couchdb,mongodb,MySQL,App Engine)。请注意当前版本声称“这不是生产代码。”

似乎与SVN的WebDAV版本不同,自动转换,允许您一次提交包含多个更新的更改集(通过从“编辑”拖动到“已发布”文件夹等等,而SVN + WebDAV的自动版本创建了太多提交,创建一个版本per-change。所以它不是完全自动版本化,但它不需要命令行访问,并且IMO是一个优秀的模型。

更普遍地考虑这个......我不建议自动提交WebDAV + SVN。正如你所说,“提交自动版本是很常见的”。但它们非常频繁,通常毫无意义。

我自己的解决方案是在我的服务器上运行git或mercurial存储库,并使用cron-job定期对其进行版本更改。丑陋但功能齐全,不需要特殊的服务器设置/没有特殊的apache模块/等。更好的是,我可以通过WebDAV或SFTP或Windows / apple文件共享或本地DVCS镜像访问所述存储库,具体取决于我的需求,它们都可以无缝地工作。

例如,Git具有相当好的文件移动检测功能,因此减少了对WebDAV访问本身的需求。然而,如果一个人移动SVN结账中的目录而没有经过将其转换为svn mv命令的访问层,那么可能会导致可怕的损坏。 AFAICT,WebDAV + SVN的主要优点是它可以防止您以这种方式破坏自己的结账。

另一方面,git或mercurial的“紧凑数据库”并不是在这种情况下优先于SVN的真正原因。但是,如果你正在考虑必须处理真正的同步冲突,我会建议他们中的任何一个超过颠覆,因为它们具有更高的冲突解决率和一般较低的低级/灵活性。

答案 1 :(得分:3)

似乎没有人为SVN以外的其他VCS编写自动版本。由于WebDAV / DeltaV支持在SVN服务器中实现,因此无法仅将VCS切换到SVN以外的其他模式。

几乎所有DVCS都可以进行普通的WebDAV访问,但是它们只能访问WebDAV客户端的存储库并推送DVCS自己的客户端的操作,但没有自动转发。

有些链接可以阅读更多信息:

答案 2 :(得分:1)

如果您只想提交所做的每项更改,您还可以使用下面的解决方案,使用 inotifywait 来观看所使用的文件夹:

Making git auto-comit

这个似乎适用于您可能使用的任何版本。

相关问题