Организация хранилища и выборочная проверка - PullRequest
0 голосов
/ 17 марта 2010

Я использую TortoiseSVN, и у меня есть SVN-репозиторий, организованный следующим образом:

folder1
  folder2
    trunk
    tag
    branches
  folder3
    trunk
    tag
    branches
  folder4
    folder5
      trunk
      tag
      branches

Хотелось бы узнать, есть ли способ извлечения только директорий транков, с сохранением всего дерева под контролем версий:

folder1
  folder2
    trunk
  folder3
    trunk
  folder4
    folder5
      trunk

Таким образом, я могу обновить все соединительные линии одной командой обновления на folder1, не обновляя теги и ветви, которые могут быть полны данных.

Ответы [ 4 ]

3 голосов
/ 17 июня 2011

Эта проблема беспокоила меня, и я решил ее:)

svn up --set-depth empty branches
svn up --set-depth empty trunk

последующие вызовы svn update в родительских каталогах не обновят эти каталоги, равно как и вызовы svn commit.

Если бы вы собирались проверить это заново, вы могли бы:

svn co --depth empty <folder1 svn url>
cd folder1
svn up --depth empty folder2
cd folder2
svn up trunk

, а затем повторите для каждого folder3 и folder4

1 голос
/ 17 марта 2010

Есть два способа сделать это.

  1. Переключите ненужные каталоги на пустые. Для этого у вас должен быть пустой каталог где-нибудь в вашем хранилище. Затем вы сначала извлекаете все дерево, а затем делаете
svn switch svn://foo/bar/path/to/empty/dir folder1/folder2/tags
svn switch svn://foo/bar/path/to/empty/dir folder1/folder2/branches

и т.д.

  1. Начиная с 1.5, вы можете использовать разреженные каталоги .
1 голос
/ 18 марта 2010

Обратите внимание, что редкие проверки - это обычно путь, однако Subversion не позволит вам объединиться с опцией - реинтегрировать .

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

Упомянутая вами структура репозитория также не позволит пометить или разметить весь проект сразу.

1 голос
/ 17 марта 2010

Самым близким и простым может быть редкие проверки . Это дало бы вам

folder1
  folder2
    trunk
      A
      B
      C
      ...
    tag
    branch
  folder3
    trunk
      A
      B
      C
      ...
    tag
    branch
  folder4
    folder5
      trunk
      A
      B
      C
      ...
      tag
      branch

и возможность обновления всего за один раз.

Или вы делаете это, используя externals . Создайте новую папку в вашем хранилище, которая не делает ничего, кроме ссылок на другие стволы.

...