Я очень привык к тому, чтобы git мог прикоснуться к каждому файлу, который вы хотите совершить, и, хотя на нем, дважды проверьте diff. Теперь на работе я должен использовать svn, и я продолжаю совершать вещи случайно. Есть ли способ заставить subversion вести себя как git в том, что я должен явно указать каждый файл, который должен быть включен в следующую фиксацию?Subversion: файлы сцен для фиксации явно?
ответ
Альтернативным методом было бы использовать мост git-svn на работе, если нет причин, почему вы не можете. Никто, кроме вас, не должен знать, что вы на самом деле используете Git. Таким образом, вы получаете все преимущества Git, фактически используя Subversion.
Вы можете создать набор изменений, в котором перечислены только файлы, которые вы хотите зафиксировать, а затем зафиксировать набор изменений. Если вы усердно относитесь к удалению наборов изменений, когда вы закончите с ними, и никогда не совершаете без изменений, я думаю, что это сработает для вас. Более простым решением было бы использовать графический клиент (например, TortoiseSVN, но есть и другие для всех платформ с аналогичной функциональностью), который показывает вам список файлов, которые будут собираться в момент, когда он запрашивает ваше сообщение для входа. Тогда, если вы нажмете «Commit», не просмотрев их, это не потому, что он не сказал вам, что он собирается делать :)
Обычно я беру на себя некоторые IDE, например Emacs, где я могу вручную выбрать набор файлов для совершить.
И как вы это делаете? – PythonNut
Укажите файлы в командной строке
СВЕН -m совершить «Мой коммит» Папка/file1.c
Чтобы следовать по ответу Рори, если вы хотите обеспечить явный файл фиксацию поведения вам, может написать сценарий пакетной или оболочки, который был проверен, чтобы убедиться, что у вас есть хотя бы один аргумент, отличный от сообщения о фиксации, и возвратил ошибку, если вы этого не сделали. Это, по крайней мере, даст вам напоминание о том, чтобы явно помещать имена файлов.
Я всегда делаю svn stat и diff перед тем, как совершать все так, поэтому stat обычно напоминает мне, что могут быть вещи, которые я не хотел зарегистрируйтесь.
Subversion работает так, как вы хотите по умолчанию. Добавить элементы, которые добавлены , удалены, или изменен, устраиваются и не выполняются до тех пор, пока вы не используете команду фиксации, в которой вы указываете файлы, которые вы хотите зафиксировать. Если вы используете командную строку и просто выполняете «svn commit» без каких-либо других параметров, тогда я вижу, что может быть вашей проблемой, и в этом случае я бы использовал функцию набора изменений, которую предложили другие, а также использовать время фиксации в качестве собственного кода -осмотрите время, чтобы взглянуть на все изменения и решить, что входит, а какие нет.
Я также хотел бы добавить, что это плохая привычка делать только частичные коммиты, и это должно быть сделано только тогда, когда вы очень осознаете, что делаете, если находитесь в общей ветке, поскольку это один из наиболее распространенных способов чтобы разбить сборку, чтобы неожиданно взаимосвязанные изменения не включались в одну и ту же фиксацию.
Что я делаю и рекомендую другим в случае, когда у меня есть изменения, которые я хочу зафиксировать отдельно, является создание патча или набора исправлений для изменений, которые меня не интересуют в то время, а затем возвращаются те же файлы из моей рабочей копии. Теперь, когда рабочая копия имеет только те изменения, которые я собираюсь совершить, я буду перестраивать и проверять правильность, выполнив ручное тестирование или модульные тесты, а затем только тогда, когда все эти проходы сделают просмотр и фиксацию собственного кода. Я думаю, что это самый безопасный способ взаимодействия с большой группой, особенно когда вы делаете сложные изменения. Этот процесс также может быть упрощен, поскольку svn заключалась в поддержке функции стеллажа на стороне клиента для внесения изменений во временный магазин с именем, подобным набору изменений, с помощью одной команды.
Кроме того, BTW, используя TortoiseSVN, упрощает управление наборами изменений и наборами вишневых файлов, которые будут входить в любую данную фиксацию. Если в Windows я настоятельно рекомендую проверить это по этой причине.
- 1. Subversion: можно выбрать, какие файлы вы можете выполнить для фиксации?
- 2. Ошибка Subversion при фиксации после фиксации?
- 3. Subversion svn: игнорировать после фиксации файлы не являются iggnore
- 4. Построить на фиксации с subversion
- 5. Копирование сообщений о фиксации subversion
- 6. Subversion добавляет сообщения без фиксации
- 7. Доступ к данным фиксации Subversion извне
- 8. subversion diff, включая новые файлы
- 9. Есть ли инструмент для просмотра закладок для всех проектов в Subversion по дате фиксации и фиксации
- 10. subversion - путь не найден на фиксации (черепаха)
- 11. Измените местоположение фиксации subversion для скопированного проекта в студии android
- 12. Subversion: как удалить свойство при фиксации
- 13. WAR-файлы и Subversion
- 14. subversion, исключая определенные файлы
- 15. subversive: только фиксировать явно добавленные файлы
- 16. проверить последнее сообщение фиксации в subversion
- 17. Импортировать только определенные файлы при первом фиксации
- 18. Subversion Игнорировать определенные файлы
- 19. Subversion: игнорировать некоторые файлы
- 20. Файлы скрытой ревизии Subversion
- 21. Android Subversion commit игнорирует новые файлы
- 22. Могу ли я указать файлы для фиксации в subversion в файле, а не в командной строке?
- 23. Редактирование сценария пост-фиксации Subversion для включения автоматизированных построений Hudson
- 24. Как я могу активировать subversion для регистрации и фиксации файла?
- 25. Subversion: как перезапустить сценарии после фиксации для всех версий?
- 26. Где находятся файлы Subversion для Windows Server?
- 27. Получить SubVersion 1.4 исполняемые файлы для Windows,
- 28. Какие файлы следует игнорировать в Subversion для проекта Android Studio?
- 29. Файлы для фиксации хранилища в проекте Yeoman
- 30. Игнорировать файлы для фиксации, но сохранять их
+1, поскольку я не знал об этой функции, но на самом деле они называются «списками изменений» в подрывной деятельности. – richq
ах, дерьмо ... Я знал, что должен был проконсультироваться с документами вместо записи из памяти, но я ленился. Сожалею. – rmeador
хорошее предложение, спасибо :) Я знаю, что графические интерфейсы должны быть в состоянии справиться с этим, но на практике я не нашел тот, который не помещает все файлы, которые будут выполняться по умолчанию (отказ). Я думаю, что поеду с git-svn, потому что я больше всего знаком с git-gui. –