Нужны команды, похожие на "svn xx" в git (в некоторых понятиях также запутано) - PullRequest
3 голосов
/ 20 декабря 2011

Я использую тестовую среду для запуска тестов производительности на рабочей копии ствола хранилища кода компании.

У нас есть большой файл сборки ant, который управляет всем процессом тестирования (сборка базы данных с образцами данных; сборка, развертывание и запуск продукта; сборка, развертывание и запуск инструментов измельчения и мониторинга; выборка различных типов информации).В этом процессе есть два шага, связанных с SVN:

  1. При сборке продукта эталонный скрипт ant вызывает файл сборки ant в рабочей копии, а svn info вызывается в пользовательской задаче дляполучить номер текущей редакции локальной рабочей копии (из строки «Текущая редакция: 12345» в выходных данных) , которая будет использоваться позже для именования файла архива журнала.
  2. При запуске выборки эталонный скрипт ant сначала запускает svn info, svn status, svn diff в каталоге рабочей копии и сохраняет результаты в файлы журнала .

Теперь другие люди хотят, чтобы эталонный скрипт Ant также поддерживал git.Чтобы скрипт проверял, является ли он svn или git (этот шаг прост), а затем запускает команды для сбора соответствующей информации об управлении версиями (путается с этим шагом).

Итак, мой вопрос:

  • Что такое сходные и разные точки между svn-ревизией и git-ревизией?
  • Что я должен использовать, чтобы получить ревизию "номер" в git (Я знаю, что это не число) как то, что я делаю в "1" выше ???Это git branch -v?
  • Что я должен использовать в git, чтобы получить как можно больше информации, используя svn, как то, что я делаю в "2" выше ???Достаточно ли git remote -v, git branch -v, git log --max-count=1, git status, git diff?
  • Как использовать git diff до для создания файла diff, который можно использовать как в gitи SVN, а также в других редакторах, которые поддерживают применять diff ?

Спасибо.

Ответы [ 2 ]

4 голосов
/ 20 декабря 2011
  1. Каковы основные различия?

    Это охватывает некоторые различия: http://git.or.cz/course/svn.html#commit

  2. Чтоя должен использовать, чтобы получить "номер" ревизии в git?

    git rev-parse HEAD
    

    Это преобразует тег HEAD в хеш ревизии.

  3. Достаточно ли git remote -v, git branch -v, git log --max-count=1, git status, git diff?

    Я думаю, это зависит от того, какая информация вам нужна.Это должно охватывать большую часть вывода из svn info, svn status и svn diff.

  4. Как я могу использовать git diff для создания файла diff, который можно использоватьи в git, и в svn?

    git diff -p > a.diff создаст стандартный унифицированный diff.Svn не обрабатывает патчи обычным способом (обычно git может читать сгенерированные svn патчи).Это может помочь вам конвертировать в формат svn patch: Git format-patch для совместимости с svn?

0 голосов
/ 20 декабря 2011

Что касается версии для релизной части, то для git обычно используется комбинация git tag -a x.x.x и git describe

Скажите, когда выготовый пометить свою сборку, вы можете сделать git tag -a 1.0.0, затем вы поместили теги в исходное хранилище на git push --tags, после того, как вы зафиксировали еще 5 коммитов, git describe вернет что-то вроде 1.0.0-5-g13f0e88, которое вы можете использовать в качестве своей версиистрока.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...