我正在努力重构一个版本为SVN
的C ++代码树。当前代码有两个类,比如Model
和Model_ext
(每个类都有一个.hh
文件和一个.cpp
文件),它们不是相互派生的。 Model
不应该被扩展,但它实现了一个特定的模型。
我想创建一个抽象基类,但更合乎逻辑的名称是Model
。特定于当前Model
中实现的模型的代码应该在一个名为Model_A
的类中移动,该类派生自它。同样,Model_ext
应重命名为Model_B
,但这不是问题。
从版本控制的角度来看,我想将Model
移动到Model_A
,其中包含:
svn mv Model.cpp Model_A.cpp
(类似于头文件)以表明Model_A.cpp
是Model.cpp
的新版本(并且它将进行本地修改)。
当然我还要添加新的Model.cpp
。它是否可能或会混淆SVN
?
我知道可以修改Model.cpp
,添加Model_A.cpp
(不使用svn mv
)并提交这两个文件,但这会破坏旧版Model.cpp
之间的所有链接和新的Model_A.cpp
。
答案 0 :(得分:0)
试过以下......
$ svn move file.txt new.file.txt
A new.file.txt
D file.txt
$ vi file.txt
$ svn add file.txt
A file.txt
$ svn status
R file.txt
A new.file.txt
$ svn commit -m"test"
Replacing file.txt
Adding new.file.txt
Transmitting file data .
Committed revision 5.
似乎适合我。