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

revup amend and revup restack Сэкономьте время, заменив медленные перезагрузкиRevup требует Python 3.8 или выше и GIT 2,43 или выше. Revup работает с Linux, OSX и Windows (ограниченное тестирование).
Следуйте инструкциям здесь, чтобы получить последнюю версию GIT для вашей ОС. Revup использует флаги, присутствующие только в более новых версиях GIT.
Установите с pip или вашим любимым менеджером пакетов.
python3.8 -m pip install revupУбедитесь, что установка была успешной, показывая страницу справки.
revup -hВы также можете построить из источника, чтобы получить последние обновления.
git clone https://github.com/Skydio/revup.git && cd revup
make deps && make package && make install
Этот учебник поможет вам использовать базовые функции Revup.
Clone A Sandbox Repo, разбив Revup, создав новое репо, или используя какой -то другой репо. Создание тестовых PRS может быть спамми, поэтому не делайте учебник по репо другим людям.
git clone https://github.com/ < your-name > /revup.git && cd revupПри первом запуске вам нужно будет настроить учетные данные GitHub. Создайте здесь личный токен доступа и установите флажок «Полные разрешения репо». Revup нуждается в этом, чтобы создать и изменить запросы на тягу. Затем беги
revup config github_oauthи скопируйте и вставьте OAuth в подсказку.
Сделайте свои первые два коммита, которые станут двумя отдельными запросами на притяжение. Обратите внимание на «Тема:» Tag в сообщении Commit - это то, что заставляет Revup распознавать и действовать на коммите. Каждая отдельно названная тема станет новым запросом на привлечение.
echo meh > foo ; git add foo
git commit -m " My first revup foo " -m " Topic: foo "
echo peh > bar ; git add bar
git commit -m " My first revup bar " -m " Topic: bar "
revup upload
Вы загрузили свои первые изменения Revup! Обратите внимание, как в GitHub обе ветви нацелены «Main». Это позволяет им объединяться независимо.


Под капотом Revup создает и толкает эти ветви для вас, отслеживая и управляя зависимостями по мере необходимости.
Теперь мы сделаем новый обзор, который относится к «Foo». «Относительный» тег обеспечит новое обзор нацелен на правильную ветвь.
echo deh >> foo ; git add foo
git commit -m " My second revup foo " -m " Topic: foo2 " -m " Relative: foo "
revup upload
С помощью этой простой, но мощной модели вы можете загрузить независимые и зависимые изменения одновременно.
Теперь давайте обновим запрос на тягу.
echo heh >> bar ; git add bar
# Either
revup amend HEAD~ --no-edit # Specify a commit to amend
# or
revup amend bar --no-edit # Specify a topic name to amend
revup upload
revup amend позволяет легко изменять коммиты в вашей истории. У вас также есть другие варианты изменения обзоров:
git rebase --interactive вместе с git commit --amend Используйте git pull --rebase чтобы втянуть в изменения. Не используйте git merge или git pull без Rebase, так как это создает коммит слияния.
По умолчанию Revup не загружается, если вы тянете, но не внесли изменения в коммит. Чтобы переопределить это и загружать всегда, запустите revup upload --rebase .
[pull]
rebase = true
[rebase]
autoStash = true
Мы рекомендуем добавить вышеперечисленное в .gitconfig чтобы упростить тягу и переживание.
Это не эксплуатационное вступление к некоторым более удобным функциям Revup.
Полное описание функций, см. Docs или запустите revup -h или revup upload -h для просмотра документов в формате man .
Для участия в проектах, которые у вас, возможно, не иметь доступа, Revup может быть настроен на то, чтобы подтолкнуть к вилке при создании запроса на привлечение в главном проекте.
Добавьте git lemotes как для оригинала, так и для вилки.
$ git remote -v
origin https://github.com/ORIGINAL_OWNER/REPO_NAME.git (fetch)
origin https://github.com/ORIGINAL_OWNER/REPO_NAME.git (push)
myfork https://github.com/YOUR_USERNAME/REPO_NAME.git (fetch)
myfork https://github.com/YOUR_USERNAME/REPO_NAME.git (push)
При загрузке пропустите удаленную дистанционную службу, чтобы создать запрос на вытягивание в As --remote-name и раздвоенный пульт дистанционного управления как --fork-name .
revup --remote-name origin --fork-name myfork upload
Revup также может добавить рецензентов, правопреемников и ярлыков для получения запросов. Добавьте соответствующие теги в любой коммит в тему.
Reviewers: alice, bob
Assignees: eve
Labels: bug, feature, draft
Имена пользователей GitHub могут быть сокращены и будут соответствовать кратчайшему названию с данным префиксом.
Метки должны точно соответствовать. draft ярлыка является особенным и сделает запрос на тягу, если он присутствует, и разместить проект, если он будет удален.
Обычно отказаться от автоматического определения вашего локального базового филиала и использует это для перечисления коммитов и обзоров целей. Вы можете выбрать нацеливание на любую конкретную тему на другую филиал или даже несколько ветвей, и в этом случае Revup будет использовать их в качестве базовой ветви (и создает несколько запросов на вытяжение в последнем случае).
A fix for multiple branches
Topic: fix
Branches: main, rel1.1
Вы также можете указать базовую ветвь в командной строке, хотя это обычно не требуется, если вы не работаете над ветвью, о которой автодетектор не знает (см. Repo Config ниже).
revup upload --base-branch custom-branch-name
Revup добавит 2 комментария в каждом запросе Pull, чтобы предоставить полезные функции для пользователей и рецензентов. Они включены по умолчанию и автоматически обновляются при изменении запроса на вытяжение.

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

Таблица Patchsets содержит историю загрузок для данного запроса на вытяжение, а также ссылки и резюме различия между каждой загрузкой. Примечательно, что Revup специально обрабатывает случай, когда вы перезагружаете, а затем загружаете и покажет вам различие с исключенными вверх по течению файлов.
Revup очень настраивается с использованием стандартного формата файла конфигурации. Каждый флаг также является опцией конфигурации, поэтому пользователи могут получить точное поведение, которое им нужно.
Флаги, указанные в командной строке, имеют приоритет, за которым следует конфигурация в ~/.revupconfig , за которым следует .revupconfig в текущем репо.
Основным использованием файла конфигурации In-Repo настройка настройки именования основной ветви и выпуска ветвей.
Например, если ваша основная филиала является master , а филиалы выпуска называются как rel1.1 , отправьте следующее в .revupconfig в корне Repo.
[revup]
main_branch = master
base_branch_globs =
rel[1-9].[0-9]
rel[1-9].[0-9][0-9]
Конфигурация пользователя в ~/.revupconfig экономит время, не выполняя наиболее часто используемые флаги.
Например, после привыкания к рабочим процессам пользователю может не понадобиться проверка подтверждения. Добавление следующих строк будет таким же, как и с помощью --skip-confirm .
[upload]
skip_confirm = True
(aka "Сложные различия", "на основе патчей" и т. Д.)
Если вы использовали такие инструменты, как списки рассылки Gerrit, Phabricator или GIT, вы, возможно, уже знакомы с этим стилем разработки. Если вы хотите узнать больше, вот несколько хорошо написанных дискуссий по этому вопросу.
Revup частично вдохновлен этим неэкгарсационным списком проектов с открытым исходным кодом, которые также поддерживают рабочий процесс на основе патчей:
revup upload но не толкают и не создают отзывы.revup amend и Backend для вышеизложенного с системой слияний, которая обрабатывает конфликты Спасибо, что внесли свой вклад в Revup! Вы можете начать работу с собственной идеей или увидеть страницу проблем для идей, которые волнуют другие люди.
При репортаже:
revup -v чтобы обеспечить многословные журналы. Revup публикуется Skydio, но не является официально поддерживаемым продуктом Skydio.