svn重命名問題
回答
區分大小寫的問題不是有關Visual Studio與GCC,而是涉及到文件系統; Windows和Mac OS X上的標準文件系統(用於Windows的FAT32和NTFS,用於Mac OS X的HFS +)不區分大小寫,但保留大小寫,而Linux文件系統(ext2,ext3和ext4)區分大小寫。我建議你重命名你的文件,對所有源文件使用全部小寫字母,然後分支,當然 - 對於將來,有嚴格的使用小寫和「.cpp」擴展名的策略所有C++源文件和所有頭文件的「.h」。有什麼理由不能在分支之前進行這種重命名?
的Git本身涉及(非常好)與重命名的文件中合併(而不是隻有在那裏)做啓發式文件的內容和基於文件名相似重命名檢測問題。它不需要提供有關重命名跟蹤解決方案等重命名信息。
天哪這是真的!這很容易... – flq 2009-10-11 15:57:42
這裏有兩個問題,一個是svn對重命名和合並的限制,在我看來,一旦決定使用svn進行項目,在中間切換版本控制軟件是不明智的。我會和其他開發人員進行交流,並制定鎖定整個項目和重新命名的循環。
在我來說,我解決了一個簡單的Perl腳本的頭文件的情況下,敏感的問題:它會修復回車和集包括小寫。 評論部分修復了包含。
#!/usr/bin/perl
use strict;
use warnings;
#
use File::Find;
use File::Copy;
sub wanted
{
if( m/\.c$/i || m/\.h$/i) {
my $orig = $_;
my $bak = $orig.".bak";
my $dst = $orig;
system("fromdos",$orig) == 0 or die "fromdos: $?";
# open(FH,'<',$orig) or die "open $orig: $!";
# my @lines;
# while(my $line = <FH>) {
# if($line =~ m/(^#include\s+")([^"]+)(".*)$/) {
# print $line;
# my $inc = $2;
# $inc =~ tr/A-Z/a-z/;
# print "change to:\n";
# print $1.$inc.$3."\n";
# print "\n";
# push @lines, $1 . $inc . $3."\n";
# } else {
# push @lines,$line;
# }
# }
# close(FH);
# #move($orig,$bak) or die "move $orig to $bak: $!";
# unlink($orig);
# open(FH, '>', $dst) or die "open $dst: $!";
# print FH @lines;
# close(FH);
}
}
find(\&wanted, ".");
不,我們不打算更改SCM工具。我在談論git-svn,它被用作svn客戶端。感謝您的腳本,我將它合併到我的腳本中 – dimba 2009-08-04 08:50:03
正如其他人所說,真正的問題與SCMs無關。至於使用git,你可以在git-svn中進行合併,並將其推回到SVN回購 - 只是提前意識到這是一次性選項,也就是說,不要指望SVN意識到這個提交是一個合併,甚至文件被重命名 - 你會失去文件的歷史,除非你真的真的小心。作爲一個旁註「非常小心」選項旁邊的說明,讓git-svn推送正確的「文件重命名」信息到似乎可靠工作的svn的唯一方法是重命名git-svn中的文件而不更改任何任何內容,提交,然後修改任何你想要的文件並做另一個提交。如果您在提交之前修改重命名的文件,混帳SVN知道該文件還有可能被移動,但顯然並不信任自己的啓發式足以推動這個信息回SVN。這很可能是我失蹤了一些神奇的選項,使這項工作更好:)
- 1. SVN批量重命名空白問題
- 2. 重命名問題
- 3. PHP重命名問題!
- 4. 文件重命名問題?
- 5. 重命名JIRA問題
- 6. Clearcase重命名問題
- 7. 文件重命名問題?
- 8. Git重命名問題
- 9. SVN文件夾重命名
- 10. SVN重命名錯誤
- 11. 問題的svn delete命令
- 12. 重命名 - 項目更名問題
- 13. CruiseControl.NET SVN重定位問題
- 14. 問題在SQL Server中重命名列
- 15. system.web.security.membership重命名數據後的問題
- 16. 文件刪除和重命名問題
- 17. 用PHP複製和重命名問題
- 18. PHP重命名功能問題
- 19. R問題中的重命名列
- 20. Bash重命名腳本的問題
- 21. 重命名jstree節點問題
- 22. 重命名xcode類的問題
- 23. Xcode - 重命名項目導致問題
- 24. Php會話重命名問題
- 25. 重命名目錄的問題
- 26. Treeview問題,同時重命名節點
- 27. Windows上的git重命名問題
- 28. SSRS 2005重命名報告問題
- 29. C重命名函數語法問題
- 30. jstree重命名節點問題
這就是我們正在考慮的。我很高興如果SCM工具不會強制執行文件重命名的工作策略,這是SCM工具的「基本」任務 – dimba 2009-08-04 08:25:22