Кроме ветвления/меток, можно также использовать его при разделении файла в два. В этом случае и новые файлы будут иметь историю, и Вы будете в состоянии посмотреть на код перед разделением.
BTW: это - одна из немногих функций, которые имеет SVN, но Мерзавец не делает (Мерзавец попытается предположить источник кода после факта, особенно если Вы добавите -C
к командам).
, Когда Вы использовали бы эту технику, и почему?
, Чтобы создать теги, и также создать ответвления, хотя обычно Вы использовали бы его на каталоге, а не единственном файле. Тег является копией одного или нескольких файлов, которые Вы сохраняете для удобства, но никогда не изменяете снова. Ответвление является копией одного или нескольких файлов, которая тогда развивается отдельно из оригинала
, эта команда создаст копию
foo.txt
при сохранении истории его, чтобы быть совместно использованной сbar.txt
?
Не совсем, foo.txt
история будет эффективно скопирована в историю bar.txt
, тогда дополнительная запись появляется в истории bar.txt
указание, что это было скопировано от foo.txt
, и после этого они независимы. Таким образом, история на грани копии идентична/общая.
, Если я изменяюсь
bar.txt
, что произойдет сfoo.txt
?
Ничто, они являются абсолютно отдельными. Но можно позже объединить изменения от одного до другого.
Это - немного необычное использование, но я нахожу, что иногда должен разделить исходный файл на два отдельных файла - например, если это содержит два набора несвязанной функциональности, и я использую копию svn, чтобы сделать это. Я тогда изменяю оба файла и удаляю несоответствующие биты от каждого. Таким образом, оба из новых файлов сохраняют историю пересмотра для своих соответствующих битов.
, Что эквиваленты к этому в других современных системах (Clearcase, Accurev, По необходимости)?
мерзавец заметит, что файл является тем же на простой копии, и покажите его копией.
Я использую эту технику, когда я создаю новый файл, и я хочу скопировать леса (я в настоящее время использую По необходимости, но используемый для использования Подрывной деятельности). Изменение копии не произведет другой файл.
Ответвление не является первоклассным гражданином в Подрывной деятельности, так как это "реализовано" как каталог.
Следовательно, эти svn copy
позволяют виду ответвления файла в рамках того же ответвления (каталог). Можно позже объединить назад скопированный файл в первое. Но это является неподходящим всего для одного файла , как упомянуто в этот поток
, эквивалент в ClearCase был бы избранным правилом как [1 113]
element * .../myBranchForCopy/LATEST
element /myPath/myFile /main/myBranch/LATEST -mkbranch myBranchForCopy
Однако в этом представлении, сделанном для ветвления файла, Вы будете только видеть один foo.txt
за один раз (или в эти myBranch
, или если это проверяется, в myBranchForCopy
). Нет никакой реальной "копии", это - тот же элемент. Любое слияние было бы между:
foo.txt@@/main/myBranch/myBranchForCopy/LATEST
foo.txt@@/main/myBranch/LATEST
svn copy
пригодился после того, как я случайно удалил файл. См. ответ на соответствующий вопрос , который я задал.