SVN - фиксировать только некоторые изменения
Одна из вещей, которые мне нравятся в GIT, заключается в том, что вы можете зафиксировать только некоторые изменения в файле. Например, если вы делали два разных изменения, связанных с одним и тем же файлом, вы можете зафиксировать файл как две отдельные фиксации с разными комментариями.
Как
Я весь день работал над файлом, прежде чем осознавать, что изменения предыдущих дней не совершались, я могу сделать следующее, выбрав строки, которые я хотел бы включить в commit:
Login.php [246]: previous changes
Login.php [247]: new changes
Я понимаю, что эта способность связана с тем, что набор изменений в GIT является DIFF, а SVN просто фиксирует весь файл. Возможно ли иметь такое же поведение с SVN?
Если существует SmartSVN конкретный взлом, тогда это будет хорошо, так как это то, что мы используем.
Ответы
Ответ 1
Используйте git -svn, я не думаю, что SVN имеет эту поддержку, или, скорее, любой из SVN-клиентов делает кроме git -svn или даже hgsubversion
Некоторая напыщенность:
Я не думаю, что причина, по которой вы просите об этом, правильная. Это означает, что вам нужно изменить способ создания наборов изменений и фиксации. Причина, по которой мне нужна такая функция, заключается в следующем:
Скажем, есть файл сборки. Он имеет определенный набор задач, которые должны выполняться на сервере сборки. Для моего локального ящика я прокомментирую часть, где он создает установщиков, потому что мне не нужно делать это в dev-блоке. Теперь, если в какой-то момент я хочу внести изменения в этот файл сборки, я должен отменить часть, в которой я удалил генератор установки и совершил другое изменение. В этом случае мне хотелось бы иметь возможность выбирать другое изменение и совершать это в одиночку.
Ответ 2
Я не пробовал это сам, но похоже, что теперь вы можете сделать это с помощью Tortoise SVN: http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-commit.html#tsvn-dug-commit-restore