Перемещение метода из одного файла в другой, сохраняя его историю - PullRequest
4 голосов
/ 05 апреля 2011

Недавно я переместил метод из одного класса / файла в другой, чтобы я мог использовать его повторно.Теперь, если я обвиняю в подрывной деятельности, я отвечаю за все строки кода, что имеет смысл, так как я создал новый файл.

Есть ли способ заставить Subversion распознать, откуда появился этот метод, чтобы история былав целости и сохранности?

Ответы [ 4 ]

6 голосов
/ 05 апреля 2011

Если вы переместили функцию из одного существующего файла в другой существующий файл, я думаю, что короткий ответ: «Это невозможно сделать». Если вы переместили функцию из существующего файла в новый файл, т. Е. Создали новый файл просто для хранения этой функции (возможно, добавив другие вещи, но начиная с этой функции), то вы можете скопировать файл, удалить функцию из оригинал и удалите все, кроме функции из копии. Тогда и оригинал, и копия сохранят историю.

1 голос
/ 05 апреля 2011

Если вы действительно хотите сохранить историю, вы можете использовать svn cp для создания копии, которая затем редактируется отдельно.

Но , я никогда этого не делал и не думаю, что когда-либо сделаю. Единственная причина, по которой я бы сделал что-то подобное, была для файла, который полностью разделен на части, а не для метода, который перемещается из одного файла в другой.

Вместо этого я бы использовал содержательный проверочный комментарий: что-то вроде "foo, созданный извлечением bar из baz"

1 голос
/ 05 апреля 2011

Под историей - вы имеете в виду историю «за строку», как от «svn blame»?

Добавить комментарий:

/** Moved from {@link OldClass}. */

и убедитесь, что оба класса (новый и старый) зарегистрированы в одной и той же ревизии. Если кому-то действительно все равно, он может прочитать комментарий и «свинить вину» старому классу.

1 голос
/ 05 апреля 2011

Нет - история за файл. Subversion просто знает, что это файл, полный текста; он не разбирает текст, чтобы понять, что это такое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...