svn - 从回购中签出一个目录时,“.svn”应该在哪里?
问题描述
项目(ABC、DEF、..)被组织在一个 SVN 存储库中。
Repo ------ABC
+-----DEF
+-----GHI
+-----JKL
为了避免检查整个(庞大的)存储库,我只检查了(通过 TortoiseSVN)我正在处理的两个项目,DEF 和 JKL。
更新/提交周期对两者都适用,但我对.svn
文件的不同位置感到困惑。
myproj ------dir1------DEF+-----file1.c
+-----file2.c
+-----.svn
+-----dir2+-----.svn
+-----JKL+-----file3.c
+-----file4.c
.svn
从回购中签出一个目录时应该在哪里?如果两个位置都正确,那么不同结构的意义是什么?
更新
我应该提到,这是两个完全不同的项目,具有完全不同的协作团队,具有完全独立的更新/提交周期。我不确定以这种方式将 save SVN repo 用于多个项目是否明智。
更新 2
尽管我想在这两个项目中的每一个中独立更新/提交,但我确实希望在结帐后在我的工作目录中看到项目的名称(DEF,..)。这给了我一个温和的确认,我在正确的地方。
解决方案
.svn
属于工作副本根¹。存储库结构无关紧要,因为工作副本可以指向存储库中的任何文件夹。保存工作副本的目录的名称是您选择的任何名称。你甚至可以重命名它,并且在 Subversion 中什么都不会中断。
¹嗯,差不多。如果您使用外部文件夹签出工作副本,您将.svn
在外部根目录中获得另一个目录,可能在外部工作副本的深处。
如果所有项目布局都相同,则您没有以相同的方式执行两个签出:
- 因为
DEF
你有一个工作副本/myproj/dir1/DEF/
,指向file:///Repo/DEF
. - 因为您在那一点上
JKL
有一个工作副本,它只包括和排除它的兄弟姐妹。/myproj/dir2
file:///Repo/
file:///Repo/JKL
恕我直言,这令人困惑,很可能是一个非自愿的错误。但是,我坚持认为,工作副本的布局不需要与存储库的布局相匹配。
推荐阅读
- android - 如何在存储访问框架中显示 Toast?
- h2o - h2o automl max_runtime_secs 没有停止执行
- java - 使用 Spring 发送 Gmail
- rest - 如果无法创建路由,预期的错误代码是什么?
- reporting-services - 如何通过 2 个或更多 SSRS 报告项来切换组的可见性
- excel - 从excel中的IP地址自动绘制国家
- html - 如何在 5 个元素后包装列表?
- foreach - ForEach 将所有字符串转换为大写
- sql - 匹配两列中的分隔值
- javascript - 当图像位于堆叠层中时,如何检测屏幕上是否存在图像?