Игнорировать ветки в рабочей копии SVN - PullRequest
4 голосов
/ 28 ноября 2010

Недавно мы сделали первую ветку ствола нашего проекта. Магистраль довольно большая (несколько ГБ), что не имеет значения для сервера, потому что ветвь создается с помощью эффективных связей там. Однако в рабочих копиях клиента проект теперь действительно занимает вдвое больше места (все наши WC - из корня хранилища).

Поскольку только несколько человек действительно нуждаются в ветке, как другие могут игнорировать (то есть не загружать) все ветви, используя TortoiseSVN?

Пользователи, только проверяющие транк, как предлагается ниже, не являются решением здесь. Наша структура такова:

/
 projects
  project-x
   assets
    blabla.psd
   code
    trunk
    branches
     branch1
     branch2
  project-y
   ...

Ответы [ 5 ]

6 голосов
/ 13 ноября 2013

(из корня вашей рабочей копии)

find . -name branches -exec svn update --set-depth empty {} \;

Это удалит все ветви из вашей рабочей копии, и будущие обновления не будут загружать их. Разработчики, которые хотят увидеть ветку, могут впоследствии:

svn update --set-depth infinity branches\my-feature-branch
6 голосов
/ 28 ноября 2010

Краткое решение - переключиться на / trunk.Все, кому больше ничего не нужно, кроме trunk, могут просто оформить заказ из / root / trunk вместо / root.Любой, кому нужна ветка, должен просто оформить ветку в другом каталоге.

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

  1. извлечение из корня с опцией «только для непосредственных детей»
  2. извлечение из корня/ trunk с опцией «полная рекурсия»

Если кто-то хочет, чтобы какая-то особая ветка была проверена, то после двух предыдущих шагов:

  • извлечение из корня / ветки с опцией «непосредственные дети»только "
  • извлечение из этой специальной ветки с опцией" полная рекурсия "

Более подробную информацию можно найти в хорошей книге SVN, глава" Разреженные каталоги ".

Для этой процедуры нет ярлыка с вишневыми ветвями.За исключением командного файла и TortoiseProc .

РЕДАКТИРОВАТЬ: Если у вас уже есть весь репозиторий извлечен, и теперь вы хотите исключить что-то для экономии места, используйте команду «Обновить элемент до ревизии»в папке, которую вы хотите исключить с помощью кассы "Исключить".Согласно руководству эта опция доступна только в диалоге Обновления до ревизии.Я предполагаю, что это предназначено только для этой цели.

Попробуйте это сначала на временной рабочей копии.Я никогда не делал этого лично.

ОБНОВЛЕНИЕ: В TortoiseSVN 1.7 в диалоговом окне оформления заказа есть кнопка «Выбрать элементы», которая позволяет выбрать только нужные папки и извлечь их за один шаг.Эта же кнопка также доступна в диалоговом окне «Обновить элемент до версии».

1 голос
/ 28 декабря 2012

Щелкните правой кнопкой мыши по папке, которая вам не нужна, и перейдите к «Обновить до версии ...».В появившемся диалоговом окне установите для параметра «Глубина обновления» значение «Исключить».(Обратите внимание, что это работает только для папок.) Это удалит его из вашей рабочей копии, но не повлияет на хранилище.Черепаха будет просто знать, не пытаться обновить ее во время обновлений.

Чтобы отменить ее, вы можете щелкнуть правой кнопкой мыши родительскую папку (или ее родительскую и т. Д.) И выбрать «Браузер репо».Найдите исключенную папку, щелкните правой кнопкой мыши и выберите «Обновить элемент до ревизии».Вы получите тот же диалог;на этот раз просто убедитесь, что на нем написано «Рабочая копия»

Отменить извлечение из подпапки в TortoiseSVN

1 голос
/ 28 ноября 2010

Надеюсь, у вас есть что-то вроде структуры:

repo root
  |
  +-- trunk
  |
  +-- branches
         |
         +-- branch1
         +-- branch2
         +-- ...

Если это так, то пользователи могут просто оформить заказ http://server/repo/trunk вместо http://server/repo, и когда они захотят работать в веткевместо этого они могут переключить свои рабочие копии на http://server/repo/branches/branch1.

0 голосов
/ 04 июля 2012

Если людям приходится загружать ресурсы вместе с кодом, более естественно переходить на уровень project-x. В этом случае у вас не будет проблем, которые вы описываете. Есть ли у вас причины разветвлять только часть своих вещей?

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