यह व्यवहार इस आधार पर भिन्न होता है कि लक्ष्य फ़ाइल नाम पहले से मौजूद है या नहीं। यह आमतौर पर एक सुरक्षा तंत्र है, और कम से कम 3 अलग-अलग मामले हैं:
लक्ष्य फ़ाइल मौजूद नहीं है:
इस मामले svn mvमें निम्नानुसार काम करना चाहिए:
$ svn mv old_file_name new_file_name
A new_file_name
D old_file_name
$ svn stat
A + new_file_name
> moved from old_file_name
D old_file_name
> moved to new_file_name
$ svn commit
Adding new_file_name
Deleting old_file_name
Committing transaction...
लक्ष्य फ़ाइल पहले से ही रिपॉजिटरी में मौजूद है:
इस स्थिति में, स्रोत फ़ाइल का नाम बदलने से पहले लक्ष्य फ़ाइल को स्पष्ट रूप से निकालने की आवश्यकता होती है। इसे निम्न प्रकार से लेन-देन में किया जा सकता है:
$ svn mv old_file_name new_file_name
svn: E155010: Path 'new_file_name' is not a directory
$ svn rm new_file_name
D new_file_name
$ svn mv old_file_name new_file_name
A new_file_name
D old_file_name
$ svn stat
R + new_file_name
> moved from old_file_name
D old_file_name
> moved to new_file_name
$ svn commit
Replacing new_file_name
Deleting old_file_name
Committing transaction...
के आउटपुट में svn stat, Rइंगित करता है कि फ़ाइल को बदल दिया गया है, और उस फ़ाइल का इतिहास है।
टारगेट फ़ाइल पहले से ही स्थानीय रूप से (अप्रकाशित) मौजूद है :
इस स्थिति में, स्थानीय फ़ाइल की सामग्री खो जाएगी। यदि यह ठीक है, तो मौजूदा फ़ाइल का नाम बदलने से पहले फ़ाइल को स्थानीय रूप से हटाया जा सकता है।
$ svn mv old_file_name new_file_name
svn: E155010: Path 'new_file_name' is not a directory
$ rm new_file_name
$ svn mv old_file_name new_file_name
A new_file_name
D old_file_name
$ svn stat
A + new_file_name
> moved from old_file_name
D old_file_name
> moved to new_file_name
$ svn commit
Adding new_file_name
Deleting old_file_name
Committing transaction...
file://...याsvn://...याhttp://...फाइल करने के लिए।