Revup은 개발자가 병렬 변경을 더 빨리 반복하고 코드 검토 생성 및 유지 관리의 오버 헤드를 줄일 수있는 명령 줄 도구를 제공합니다.
revup amend
및 revup restack
시간을 절약하십시오.Requp에는 Python 3.8 이상이 필요하며 Git 2.43 이상이 필요합니다. Revup은 Linux, OSX 및 Windows (제한된 테스트)에서 작동합니다.
OS의 최신 GIT 버전을 얻으려면 여기에서 지침을 따르십시오. Requp은 새로운 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
이 튜토리얼은 기본 Requp 기능을 사용하여 안내합니다.
Requp을 포킹하거나 새로운 저장소를 만들거나 자신이 소유 한 다른 저장소를 사용하여 샌드 박스 레포를 복제하십시오. 테스트 PR을 만드는 것은 스팸이 될 수 있으므로 다른 사람들의 저장소에 대한 자습서를하지 마십시오.
git clone https://github.com/ < your-name > /revup.git && cd revup
첫 번째 실행시 GitHub 자격 증명을 구성해야합니다. 여기에 개인 액세스 토큰을 만들고 "전체 리포 권한"을 확인하십시오. PULL 요청을 작성하고 수정하려면 Requp이 필요합니다. 그런 다음 실행하십시오
revup config github_oauth
그리고 Oauth를 프롬프트에 복사하여 붙여 넣습니다.
두 개의 별도의 풀 요청이 될 첫 두 커밋을 만드십시오. "주제 :"커밋 메시지의 태그 - 이것은 Requp이 커밋에서 인식하고 행동하게하는 원인입니다. 별도로 명명 된 주제는 새로운 풀 요청이됩니다.
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
첫 번째 Requp 변경 사항을 업로드했습니다! Github에서 두 가지 모두 '메인'을 대상으로하는 방법에 주목하십시오. 이를 통해 독립적으로 병합 할 수 있습니다.
후드 아래에서 Requp은 이러한 지점을 생성하고 밀어서 필요에 따라 종속성을 추적하고 관리합니다.
이제 우리는 "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
사용하여 변경 사항을 당기십시오. 병합 커밋을 생성하므로 Rebase없이 git merge
또는 git pull
사용하지 마십시오.
기본적으로 Requp은 당기면 업로드되지 않지만 커밋을 변경하지 않았습니다. 이를 재정의하고 항상 업로드하려면 revup upload --rebase
실행하십시오.
[pull]
rebase = true
[rebase]
autoStash = true
위와 리바스를 더 쉽게 당기려면 위의를 .gitconfig
에 추가하는 것이 좋습니다.
이것은 더 편리한 Requp 기능에 대한 경험이없는 소개입니다.
기능에 대한 자세한 설명은 문서를 참조하거나 revup -h
또는 revup upload -h
실행하여 man
형식의 문서를 봅니다.
푸시 액세스 할 수없는 프로젝트에 기여하려면 메인 프로젝트에서 풀 요청을 작성하는 동안 포크로 푸시하도록 구성 할 수 있습니다.
원본과 포크 모두에 대한 git 리모컨을 추가하십시오.
$ 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)
업로드 할 때는 리모컨을 전달하여 --remote-name
및 포크 리모컨으로 --fork-name
으로 풀 요청을 만듭니다.
revup --remote-name origin --fork-name myfork upload
Requp은 또한 검토 자, 양수인 및 라벨을 추가하여 요청을 가져올 수 있습니다. 주제의 커밋에 적절한 태그를 추가하십시오.
Reviewers: alice, bob
Assignees: eve
Labels: bug, feature, draft
GitHub 사용자 이름을 약자로 만들 수 있으며 가장 짧은 이름과 주어진 접두사와 일치합니다.
레이블은 정확히 일치해야합니다. draft
레이블은 특별하며, 현재의 경우 초안을 요청하고 제거하면 드래프트를 제거 할 경우 초안을 요청합니다.
Requp은 일반적으로 현지 기본 지점을 자동으로 감지하고이를 사용하여 커밋 및 대상 리뷰를 나열합니다. 특정 주제를 다른 지점 또는 여러 분기에 타겟팅하도록 선택할 수 있습니다.이 경우 Requp은 대신 기본 지점으로 사용하고 후자의 경우 여러 풀 요청을 생성합니다).
A fix for multiple branches
Topic: fix
Branches: main, rel1.1
AutoDetector가 알지 못하는 분기에서 작업하지 않는 한 일반적으로 필요하지는 않지만 명령 줄에도 기본 분기도 지정할 수 있습니다 (아래의 Repo 구성 참조).
revup upload --base-branch custom-branch-name
Requp은 모든 풀 요청에 2 개의 댓글을 추가하여 사용자 및 검토 자에게 유용한 기능을 제공합니다. 이들은 기본적으로 활성화되며 풀 요청이 변경 될 때 자동으로 업데이트됩니다.
검토 그래프는 현재 풀 요청과 상대적으로 관계가있는 모든 로컬 풀 요청에 대한 링크 및 제목을 제공합니다. 이를 통해 체인의 풀 요청을 빠르게 탐색 할 수 있습니다.
Patchsets 테이블은 주어진 풀 요청에 대한 업로드 기록과 각 업로드 간의 차이의 링크 및 요약을 제공합니다. 특히 Requp은 특별히 당신이 다시 부과 한 사건을 처리 한 다음 업로드하고 업스트림 파일이 제외 된 경우 차이를 보여줄 것입니다.
Revup은 표준 구성 파일 형식을 사용하여 구성 가능합니다. 모든 플래그는 구성 옵션이므로 사용자가 필요한 정확한 동작을 얻을 수 있습니다.
명령 줄에 지정된 플래그는 우선 순위를 차지한 다음 ~/.revupconfig
에서 구성한 다음 현재 리포에서 .revupconfig
이어집니다.
REPO 내 구성 파일의 기본 usecase는 기본 분기 및 릴리스 브랜치의 이름을 설정하는 것입니다.
예를 들어 주 지점의 master
이고 릴리스 브랜치의 이름이 rel1.1
과 같은 이름이있는 경우 REPO ROT의 .revupconfig
에 다음을 커밋하십시오.
[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
(일명 "스택 디프", "패치 기반"등)
Gerrit, Phabricator 또는 Git 메일 링리스트와 같은 도구를 사용한 경우 이미 이러한 스타일의 개발에 익숙 할 수 있습니다. 더 많이 읽으려면 다음과 같은 주제에 대한 잘 쓰여진 토론이 있습니다.
Requp은 패치 기반 워크 플로를 지원하는이 비 exhaustive 오픈 소스 프로젝트 목록에서 부분적으로 영감을 받았습니다.
revup upload
와 유사한 지점을 생성하지만 리뷰를 누르거나 생성하지 않습니다.revup amend
및 위의 백엔드와 유사합니다. Requp에 기여해 주셔서 감사합니다! 자신의 아이디어로 시작하거나 다른 사람들이 흥분하는 아이디어에 대한 문제 페이지를 볼 수 있습니다.
보고 할 때 문제 :
revup -v
로 동일한 명령을 실행하십시오. Requp은 Skydio에서 출판되지만 공식적으로 지원되는 Skydio 제품은 아닙니다.