#github #phing
#github #phing
Вопрос:
Я пытаюсь использовать Phing для вызова git и извлечения удаленного частного репозитория, но это не работает.
Вот мой код для Phing:
<project name="test" default="main">
<!-- Get User Variables -->
<property file="build.properties" />
<!-- Declare Variables -->
<property name="base.dir" value="../" />
<property name="git.repository" value="git@github.com:test/test.git" />
<!-- Pull Git Release -->
<target name="git.pull">
<gitpull
repository="${git.repository}"
source="origin"
refspec="${git.release}"
/>
</target>
<target name="main" depends="git.pull">
</target>
</project>
Но когда я запускаю, я получаю эту ошибку:
You must specify readable directory as repository.
Кто-нибудь знает, как это сделать? Или у вас есть рабочий пример?
Ответ №1:
Для pull
вас необходимо предоставить локальный репозиторий. Удаленный репозиторий (тот, из которого нужно извлекать) — это тот, который вы предоставляете с source
Вы можете найти примеры в тесте https://github.com/phingofficial/phing/blob/master/test/etc/tasks/ext/git/GitPullTaskTest.xml
Комментарии:
1. В этом примере он использует
gitclone
и репозиторий является удаленным. Я попробовал это, и я получил ту же ошибку. Этоsource
не что иное, как «происхождение»2. Вы не должны прекращать чтение после первого тега. Конечно, вам нужен локальный репозиторий с одним удаленным для извлечения откуда-нибудь. Тесты сначала клонируют удаленный репозиторий, который также добавит URL-адрес клонированных репозиториев в качестве удаленного имени
origin
. На следующем шаге он извлекает из него. В мире gits обычно называется «основной» пультorigin
😉3. Правильно — я скопировал всю цель, и в клоне произошла ошибка, поэтому я упомянул об этом >. <
4. Я думаю, что с моей настройкой что-то не так, я уверен, что вы правы.
Ответ №2:
Целевой каталог должен существовать. Но он должен быть пустым. Он не должен включать каталог .git.