我有一个简单的py脚本继承层次结构
说Cat
和CoolCat
以及FurryCat
。这个文件必须(根据我脑中的声音)放在SVN中的两个不同的文件夹下,其中Cat
模块必须都在FurryCat
的目录中,CoolCat
相同}。 - >所以我在存储库中复制了相同的文件。
https://svn/.../FurryCat
/FurryCat.py
/Cat.py
https://svn.../CoolCat
/CoolCat.py
/Cat.py
我们都是忙碌的人类,所以我们忘了提交文件两次,所以很难发现它们不同步所以现在你必须观察svn日志,等等。根据我的经验,合并python代码几乎总是证明是手动合并。
我猜它是一些
svn propedit svn:externals ...
答案 0 :(得分:1)
您可以在一个文件中创建一个符号链接(或Windows中的快捷方式),指向另一个文件夹中的实际文件,并将该符号链接提交给SVN。
然而,这个问题是DRY(不要重复自己)编程原理的确切原因。您的问题正是为什么您应该避免重复代码,除非绝对必要。我确信有一种方法可以构建你的代码,这样两个类都只有一个文件继承,我会研究这个解决方案。我会考虑解决这个问题的“正确方法”,而不是在两个地方管理文件的一些kludge。这对我来说似乎是不好的做法。
答案 1 :(得分:0)
我走了svn:externals
路径,这就是你如何做到的:
基本上,当您进行外部定义时,文件会出现在两个位置。
这就像量子理论,其中粒子同时存在于许多地方。
这是我在此发现的最佳教程。 http://blog.kowalczyk.info/article/Short-tutorial-on-svn-propset-for-svnexternals-p.html
让我困惑的是文件夹与文件之间的定义差异。
普通https://svn/path/to/common_folder
- >文件夹'common'用文件创建。
coolest_script_ever.py https://svn/deliciouscripts/awesome.py
- >该文件进入当前目录。
什么是混乱?对我来说这很令人困惑,因为我习惯使用SVN'你总是检查一个文件夹'。
一般来说,为了摆脱错误的svn:externals
定义,你应该做一个
svn propdel svn:externals .
在工作目录中。 但最好让它第一次运作......如果你犯了错误就恢复原状。