windows - 什么 SCM 在 Windows 和 Linux 下支持符号链接(symbolic link)?

标签 windows svn version-control symlink

我发现 subversion doesn't support symlinks under Windows .

我想知道是否有人知道能够在 Windows 和 Linux 下使用符号链接(symbolic link)的 SCM 工具?

SCM 工具目前在 Windows 下缺少符号链接(symbolic link)支持:

  • 清晰案例
  • 颠覆
  • Mercurial
  • 执行力

最佳答案

大多数 SCM 专注于存储规范化数据(将您的 SCM 视为数据库)。这意味着它们存储源文件和构建脚本,而不是存储从它们派生的可执行文件。人们可以同时存储两者,但这会导致不必要的重复。

类似地,符号链接(symbolic link)是对其他文件的引用,代表与数据规范化类似的问题。

此外,指针通常很难推理。在 SCM 中添加对指针(符号链接(symbolic link))的支持意味着某些操作将需要检查符号链接(symbolic link)指向的位置并采取相应的行动。这使合并变得更加困难,添加/更新符号链接(symbolic link)很棘手,因为您需要找出它指向的位置(在 repo 中与 repo 外,两个符号链接(symbolic link)指向同一文件等)。

由于这些原因,大多数 VCS/SCM 不允许您管理符号链接(symbolic link)。大多数 SCM 都支持用户定义的 Hook 。使用自定义 Hook 或其他脚本来管理符号链接(symbolic link)是一种更好的方法,因为这意味着 SCM 不必对它们进行推理(它对它们一无所知),并且您正在回避它们创建的数据规范化问题。

因此,总而言之,您最好编写管理符号链接(symbolic link)的脚本,然后在适当的时候调用它们(克隆/ check out 、更新/提交等)。

关于windows - 什么 SCM 在 Windows 和 Linux 下支持符号链接(symbolic link)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2167214/

相关文章:

windows - 从传递给批处理文件的参数中删除封闭的双引号

git - 撤消对 git config 中 receive.denyCurrentBranch 值的更改

java - Jenkins 使用不同的 Maven 存储库构建

windows - SVN 在 Windows 上以不同用户身份 checkin

android - 撤消git命令 - 在android studio中重置磁头(硬)

git - 恢复 git 提交到(无分支)

c++ - 如何在 C++ 中从音频中捕获声音

Windows 卷影复制错误 : 2155348129

sql-server - 这个黑客想做什么?

python - 在 Hudson 中使用实际的分支头修订号