Подпапка Checkout в Git - PullRequest
       10

Подпапка Checkout в Git

4 голосов
/ 21 февраля 2012

У меня есть проект git, который я использовал для недавно опубликованной научной статьи.В проекте у меня есть подкаталоги doc (разбитые на doc/paper doc/talks) results src и более.

Теперь я хотел бы выпустить свой исходный код (но не мои слайды презентации и т. Д.).Каков наилучший способ предоставить людям доступ только к подкаталогу src?Я бы выпустил zip-файл со снимком текущего каталога src, но я хочу, чтобы люди легко получали обновления.

Большое спасибо.Oliver

Ответы [ 3 ]

6 голосов
/ 21 февраля 2012

Короткая версия:

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

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

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

Более длинная версия: Wo «Новые» распределенные системы контроля версий (Git, Mercurial, Bazaar и т. д.) не построены вокругизвлечение из папки таким же образом, как SVN и CVS.Отделение дерева ветвей от дерева каталогов упрощает обработку ветвей и слияний в графе ревизий, поскольку их больше, чем для централизованных VC: es.(SVN, IMO, обрабатывает ветви и слияния, как кувалда, обрабатывает открытие банок спама, во многом это связано с тем, что любой каталог в иерархии может быть разветвлен / объединен).

Функция частичных проверокэто легко дать в централизованных сценариях, где вы не разветвляетесь и не объединяетесь, и поэтому было популярно на заре времени.Вы больше этого не понимаете, и, вероятно, научитесь быть благодарными за то, что этого не было.:)

Поэтому проще иметь несколько подпунктов / подмодулей важных вещей.Разветвить топ репо немного сложнее, поэтому вам нужно подумать о том, как вы хотите настроить вещи, чтобы вам было легче работать.(Может быть, выпуск слайдов презентации не так уж и плох?)

4 голосов
/ 21 февраля 2012

Нет способа проверить только подпапку репозитория, используя git.

Вы можете сделать подпапку собственным репозиторием или распространять архивы / zip-файлы, как вы предлагаете.

Начиная с git 1.7, есть поддержка "разреженных проверок" - см. здесь - но это только рабочая копия, которая разрежена; вам все равно придется дать пользователям возможность клонировать весь ваш репозиторий.

2 голосов
/ 21 февраля 2012

Как указано в Git Book в главе о подмодулях, Git не допускает частичные проверки .

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

...