Свяжите наборы изменений с рабочим элементом git-tfs

Я пытался выяснить это, но пока безуспешно. Я использую git-tfs для проверки своих изменений в TFS (локально с использованием репозитория GIT)

Я прочитал этот вопрос, в котором кратко описывается, что вы можете связать рабочие элементы в сообщении фиксации, используя метаданные ( Ошибка TF26198 при выполнении git tfs rcheckin ). Команды, которые я пробовал использовать:

1)

git tfs checkin -m "Changes to workitem #12345" => doesn't associate changeset to TFS workitem

2)

git tfs rcheckin -w12345 -m "Changes to workitem 12345" => triggers error "error: This syntax with one parameter is only allowed in bare repository." 

3)

git tfs checkin -w12345 -m "Changes to workitem 12345" => triggers error No TFS parents found

4)

git tfs checkin -m "Changes to workitem #12345" => doesn't associate work item

Любые идеи о том, что я делаю неправильно?

Спасибо, Юлия


person iulia    schedule 03.06.2014    source источник


Ответы (2)


Попробуйте добавить :a после -w12345 следующим образом:

git tfs rcheckin -w12345:a -m "Changes to workitem 12345"

or

git tfs checkin -w12345:a -m "Changes to workitem 12345"

Вы также можете использовать :r вместо :a для "разрешения" вместо "связать"

Я думаю, что по умолчанию должно быть :a, если вы не укажете значение, но это никогда не работало для меня.

person Anders    schedule 03.06.2014
comment
Это работает отлично, спасибо! Я только что проверил, и он правильно применил набор изменений к рабочему элементу TFS. - person iulia; 03.06.2014

Во-первых, вы должны знать о разнице между checkin и rcheckin (см. документацию git-tfs для команд для этого ... Это действительно поможет!)

Затем анализируется сообщение коммита. чтобы найти связь рабочих элементов только с rcheckin (а не checkin), поэтому 1) и 4) не будут работать.

2) Сообщение странное, но это потому, что rcheckin не должно так работать.

3) Только сегодня обнаружил (какое совпадение!), что в этом синтаксисе есть ошибка (которую я никогда не использую!). Просто используйте:

git tfs checkin -w12345: -m «Изменения в рабочем элементе 12345»

или git tfs checkin -w12345:a -m "Изменения в рабочем элементе 12345"

пройти через баг...

Но ошибка, которую вы получаете, говорит мне, что у вас есть более серьезная проблема (не связанная с ассоциацией рабочих элементов) и что вы что-то пропустили с git-tfs (но я не вижу, что :()

К вашему сведению, я НАСТОЯТЕЛЬНО предпочитаю использовать команду rcheckin, чем checkin, которая создает ужасную историю с большим количеством слияний.

rcheckin проще. Сделайте всю свою фиксацию git со ассоциацией рабочих элементов в сообщении фиксации, используя # 12345, и когда вы будете довольны, выберите из tfs, перебазируйте свою работу (или выполните git tfs pull -r) и выполните:

git tfs rcheckin

Все должно быть в порядке!

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

person Philippe    schedule 03.06.2014
comment
Еще один отличный ответ, я много просматривал документацию и не понял, но вы, ребята, прояснили это для меня. Понятия не имел о проблеме синтаксиса, спасибо за указание на это, а также другие комментарии. Хорошего дня! - person iulia; 03.06.2014