5

在我们的一个学校项目中,使用的 VCS 是 SVN。

约束:

  • 我们的教授不想将非工作代码提交到中央存储库中。

  • 我将在旅途中处理代码。我在一天中的不同时间在办公室的笔记本电脑、台式机和 PC 上编写代码(我想是很有效率的)

  • 我们不允许分支

我在想我会将我正在处理的文件存储在另一个存储库(可能还有 GIT)上,以便四处移动并避免在主存储库上提交“死代码”。之后,为避免在两个存储库之间复制粘贴内容,我会将一个存储库上的文件符号链接到另一个存储库。因此,我会在一个 repo 上无休止地提交文件,然后在完成后,我会在另一个 repo 上提交。

但是,我不知道 VCS 在符号链接方面的行为是什么。

在 StackOverflow 中阅读了一个答案,即 GIT 将符号链接存储为文件,并且在检索它时,无论目标是否存在,它都会将其返回到符号链接 - 这不好。我可能会得到“死文件”。

我还阅读了 SVN 的此文档,并没有说明检索符号链接后会出现什么。

那么,我应该怎么做才能将两个存储库与同一个文件同步?我应该使用符号链接还是有其他方法?

4

2 回答 2

2

这是我的建议:

  1. git svn clone <教授回购的网址>
  2. 在第 1 步之后,你有你的颠覆 repo 的本地副本
  3. git branch < 分支名称 > - 不要担心你的教授不会看到这个分支
  4. 在你的分支上工作并提交你想要的任何东西,直到你完成——所有的工作和测试都通过了——是时候把你的代码交给教授了
  5. git结账大师
  6. git svn rebase - 将从 svn 主线中选择最新的更改
  7. git merge <你的分支名称> - 如果教授喜欢查看单个提交,你可以使用 --squash 选项
  8. git svn dcommit - 将您的更改发布到主线

HTH。

于 2012-09-24T10:36:36.970 回答
2

介绍:

“没有死代码”和“没有分支”是糟糕和丑陋的开发政策,政策导致巨大的、不可管理的提交(大多数时候)

  1. 忘记纯符号链接,使用本机工具和方法
  2. (一些)外部源可以使用Subversion externals链接到 Subversion repo
  3. 移动开发(几乎)与问题的第一部分无关:使用任何选择的 (D)VCS,最近可以桥接到 Subversion(Mercurial、Git、Bazaar、Fossil-SCM/over git-export/)
于 2012-09-24T10:16:42.173 回答