SVN совершить все сразу (очередь)? - PullRequest
2 голосов
/ 16 мая 2011

Я использую Tortoise svn client в Windows, и мне нужно иметь возможность фиксировать измененные файлы из разных подпапок одновременно - в одном коммите.Например, добавление файлов в очередь перед фиксацией или что-то в этом роде?Как я могу это сделать?

Есть ли другой клиент SVN в Windows, который может это сделать?

Ответы [ 8 ]

5 голосов
/ 16 мая 2011

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

1 голос
/ 11 сентября 2014

Итак, одна функция, которую я часто использую с TortoiseSVN, которая, на мой взгляд, может быть похожа на ваш запрос, - это перетаскивание папок или файлов в диалог фиксации.Пока все они находятся в одной корневой корневой папке, это будет понятно и позволит вам зафиксировать их в одном коммите.Это очень удобная функция, которой я пользуюсь все время.

Еще одно расширение этой функции, которое я хотел бы увидеть, - это то, что обеспечивает Araxis Merge.Вы можете щелкнуть правой кнопкой мыши файл или папку, а затем выбрать «Очередь для сравнения»:

Araxis Merge context menu selections - Queue for Comparison

Затем, когда вы щелкнете правой кнопкой мыши по другой папке / файлу, вы сможете выполнить сравнениес одним или несколькими элементами, находящимися в очереди:

Araxis Merge context menu selections - Compare with Araxis Merge (+n in queue)

Мне бы очень хотелось, чтобы оболочка Tortoise поддерживала «Очередь для фиксации», а затем добавляла «Commit (с +n в очереди) 'меню, если очередь не пуста.

1 голос
/ 17 мая 2011

Некоторые из уже предоставленных ответов дают, по сути, один и тот же (правильный) ответ - коммит из вашей рабочей копии root. Но я думаю, что было бы полезно дать еще пару подробностей.

Во-первых, фиксация из корня не подразумевает, что вы должны фиксировать все (в случае, если вас беспокоит, что вы еще не совершили какие-либо несвязанные правки). Диалог фиксации позволяет вам выбрать или отменить выбор из набора всех измененных файлов.

Во-вторых, и, возможно, наиболее актуально для вашего вопроса, независимо от того, сколько файлов вы выбрали для фиксации, операция фиксации будет атомарная , т.е. она фиксирует все файлы или, если возникла проблема с одним или несколькими из них, он фиксирует none . Таким образом, Subversion гарантирует, что ваши изменения будут сгруппированы как единый набор изменений.

В-третьих, следует помнить, что этот пункт имеет несколько меньшее отношение, но все же стоит упомянуть здесь: важно знать, что операции Subversion ( вне обозревателя репозитория) работают в двух направлениях. -стадийный процесс: сначала вы вносите локальные изменения, а затем фиксируете изменения. Это кажется почти тавтологией, когда дело доходит до операции edit : сначала вы редактируете, а затем фиксируете; сам процесс редактирования не влияет на хранилище. Очевидно, верно? Это не так очевидно, если учесть операцию add : сначала вы добавляете, а затем фиксируете; добавление также не влияет на хранилище! Таким образом, связывая это с вашим вопросом, редактируйте различные файлы, добавляйте различные файлы, удаляйте различные файлы и т. д., пока вы создаете набор изменений . Как только вы это сделаете, откройте диалоговое окно фиксации в корне вашей рабочей копии и выберите все файлы в вашем наборе изменений и зафиксируйте их в одной атомарной операции.

1 голос
/ 16 мая 2011

Попробуйте сделать коммит из вашей верхней папки. Он покажет вам измененные и неверсированные файлы, даже если они находятся в подпапках.

1 голос
/ 16 мая 2011

Если они все являются частью одного и того же репозитория, то вы просто фиксируете их из корневой папки этого репозитория. Если они из разных репозиториев, то концепция несколько не имеет смысла, потому что вы будете делать отдельные коммиты для отдельных репозиториев, так что на самом деле это не может быть «один коммит». Если у вас есть подпапки, которые являются разными репозиториями, но вы просто хотите выполнить 1 операцию фиксации на клиенте, чтобы зафиксировать их все, тогда вы можете просто сделать какой-нибудь сценарий .bat для перебора подпапок и выполнить ту же команду фиксации с то же самое сообщение коммита.

Может быть, добавить более подробную информацию о том, что это за "подпапки"?

0 голосов
/ 16 мая 2011

Вы можете использовать функцию списка изменений из Subversion (которая также доступна в TortoiseSVN> 1,5 ), которая позволяет вам создать список файлов для фиксации, связанных с той же функцией.

0 голосов
/ 16 мая 2011

Перейдите на 1 каталог из подкаталогов, щелкните правой кнопкой мыши и выберите «SVN Commit ..» оттуда.Затем на панели «Изменения» выберите только (и все) подкаталоги, которые вы хотите зафиксировать сразу.

0 голосов
/ 16 мая 2011

Они все в одном хранилище?Если это так, просто перейдите в корень вашей рабочей копии и выполните коммит оттуда

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