यह व्यवहार इस आधार पर भिन्न होता है कि लक्ष्य फ़ाइल नाम पहले से मौजूद है या नहीं। यह आमतौर पर एक सुरक्षा तंत्र है, और कम से कम 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://...
फाइल करने के लिए।