我是版本控制的初学者,所以我可能做错了什么。
我希望能够在 cygwin 和 TortoiseSVN(或其他 Windows 应用程序)中访问本地存储库。问题是,在 cygwin 中,我必须使用
file:///cygdrive/c/...
TortoiseSVN 需要的路径
file:///c:/...
。
我怎样才能让这两者一起工作?我可以使用其他一些双方都理解的路径/协议吗?
谢谢!
我是版本控制的初学者,所以我可能做错了什么。
我希望能够在 cygwin 和 TortoiseSVN(或其他 Windows 应用程序)中访问本地存储库。问题是,在 cygwin 中,我必须使用
file:///cygdrive/c/...
TortoiseSVN 需要的路径
file:///c:/...
。
我怎样才能让这两者一起工作?我可以使用其他一些双方都理解的路径/协议吗?
谢谢!
简单的方法是使用svnserve
Subversion 附带的程序。这应该在 Cygwin 中。您需要做的就是启动svnserve
并svn://
用作协议而不是file://
.
首先,您需要修改您的存储库。您必须编辑两个文件:svnserve.conf
和passed
.
$ cd /cygdrive/c/.../repos_dir
$ cd conf
$ vi svnsever.conf # Change the "# password-db = passwd" line & remove the "#"
$ vi passwd # Setup the user and password entry
接下来,启动服务器:
$ cd .. # Back to the repository directory
$ svnserve -r $PWD -d
而且,就是这样。
现在,您可以通过以下方式进行结帐:
$ svn co svn://localhost/dir/to/check/out
这将是 cygwin 和 Tortoise 中的相同 URL
不能保证不同的 subversion 客户端会生成可以与其他 subversion 客户端一起使用的工作目录。
幸运的是,Tortoise 和标准的 Subversion 命令行客户端似乎没问题。在过去的几年里,我一直能够在 Subversion 命令行客户端和 ToroiseSVN 之间切换。但是,您必须确保它们都是 ether post 1.7 版客户端或 pre 1.7 客户端。如果您的 Cygwin 客户端是 1.6.7 版本,而您的 Tortoise 客户端是 1.7.5,则无法共享工作目录。使用svn version
命令检查您的 Cygwin 客户端,并检查 Tortoise 上的About 框。
同样,不能保证两个客户端可以共享同一个工作目录,所以如果有问题,你自己。
有一个更好的办法。只需链接目录。
ln -s /cygdrive/c /C:
现在它应该工作了。
归功于 Mark Malaknov 你可以在这里阅读:
http://markmal.blogspot.com/2012/11/how-to-use-cygwin-svn-and-tortoisesvn.html
如果您(重新)安装 TortoiseSVN 并选择安装(Windows)命令行工具的选项,但不要从 Cygwin 安装程序安装这些工具的 Cygwin/Linux 版本(或删除它们),那么您的 Windows 工具仍可通过 Cygwin 获得。
这些应该接受 Windows 路径,就像您从命令提示符调用它们一样(尽管您可能必须将它们放在引号中以避免 bash shell 解释它们)