Где должен быть `.svn` при проверке одного из репо? - PullRequest
0 голосов
/ 06 сентября 2018

Проекты (ABC, DEF, ..) организованы в одном SVN-хранилище.

Repo ------ABC
     +-----DEF
     +-----GHI
     +-----JKL

В попытке избежать проверки всего (обширного) репозитория, я проверил (через TortoiseSVN) только два проекта, над которыми я работаю, DEF и JKL.

Циклы обновления / фиксации работают нормально для обоих, но я озадачен разным расположением файла .svn.

myproj ------dir1------DEF+-----file1.c
                          +-----file2.c
                          +-----.svn
       +-----dir2+-----.svn
                 +-----JKL+-----file3.c
                          +-----file4.c

Где должен быть .svn при извлечении одного из каталогов из репо? Если оба местоположения правильны, каково значение различных структур?

Обновление

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

Обновление 2

Несмотря на то, что я хочу обновлять / фиксировать независимо в каждом из этих двух проектов, я хочу видеть название проекта (DEF, ..) в моем рабочем каталоге после извлечения. Это дает мне мягкое подтверждение того, что я нахожусь в правильном месте.

Ответы [ 2 ]

0 голосов
/ 06 сентября 2018
  • .svn принадлежит рабочая копия root¹. Структура репозитория не имеет значения, потому что рабочая копия может указывать на любую папку в репо.

  • Имя каталога, в котором хранится рабочая копия, это то, что вы выберете. Вы даже можете переименовать его, и в Subversion ничего не сломается.

¹ Ну, почти. Если вы извлечете рабочую копию с папкой external , вы получите еще один каталог .svn во внешнем корне, возможно, углубленный внутри внешней рабочей копии.

Если все макеты проекта идентичны, вы не выполнили оба извлечения одинаково:

  • Для DEF у вас есть рабочая копия на /myproj/dir1/DEF/, которая указывает на file:///Repo/DEF.
  • Для JKL у вас есть рабочая копия на /myproj/dir2, которая указывает на file:///Repo/, которая включает только file:///Repo/JKL и исключает его братьев и сестер.

ИМХО, это сбивает с толку и, скорее всего, является недобровольной ошибкой. Но, я настаиваю, макет ваших рабочих копий не обязательно должен соответствовать макету вашего репозитория.

0 голосов
/ 06 сентября 2018

Похоже, вы создали dir1, затем внутри создали DEF, затем извлекли DEF (по пути Repo/DEF). Вы также создали dir2, затем извлекли из него Repo (по пути Repo), но в нем выбрали только JKL в том, что называется разреженной рабочей копией (вы нажали кнопку "Выбрать элементы". .. ", а в дополнительном окне выделена только папка JKL и отменены все остальные).

Если бы вы создали JKL в dir2 и извлекли JKL (по пути Repo/JKL), тогда папка .svn была бы внутри JKL.

...