• 카테고리

    질문 & 답변
  • 세부 분야

    개발 도구

  • 해결 여부

    미해결

pull-request를 두 번 할때

21.08.01 16:03 작성 조회수 1.7k

0

로컬rep로 clone해온 폴더1 안에 있는 a.py와 b.py라는 모듈에서 각각 수정사항을 발견한 상황인데요.

답글들을 보니 변경사항 각각에 대해 branch를 생성해야 한다고 나와 있어서요. 그렇다면

(질문 1)
branch_a를 만들어서 a.py를 수정하고
branch_b를 만들어서 b.py를 수정해서
pull request를 총 2번 하는 것이 맞는지 궁금하구요

(질문 2)
질문 1에 대해서 '그렇다'라는 답이 나왔을 때 다시 드는 의문은,
만약 패키지 제작자가 a에 대한 pr과, b에 대한 pr 모두 merge할 가치가 있다고 판단했을 때

먼저 a에 대한 pull request를 merge 하면,
original package는 a.py에 대한 수정사항을 반영하게 되는데 (original package가 아니라 '변경된 패키지'가 생성됨!)

그 다음 b에 대한 pull request를 merge할 때는
original package가 아니라, 앞서 생성된 '변경된 패키지'에 대해 b를 merge해야 하는 상황이 올 텐데
이 경우 branch_b는 a.py에 대한 수정사항이 들어있지 않기 때문에, 충돌이 발생하지 않는가? 해서요

1) (동시에 2개 pr) 이런 충돌사항은 패키지 제작자가 알아서 관리해야 하는 것인지
2) (1회 pr) 충돌을 막기 위해서 a.py와 b.py에 대한 변경사항을 하나의 브랜치에 담아서 pr해야 하는지
3) (시간차를 두고 2회 pr) 아니면 a.py에 대한 pr이 merge될 때까지 충분히 기다린 다음에, 그렇게 '변경된 패키지'를 local로 다시 clone해 온 다음 그제서야, b.py에 대해 pr을 진행하면 되는 것인지

궁금하네요. 감사합니다.

답변 1

답변을 작성해보세요.

1

(질문 1)

a.py와 b.py라는 모듈에서 각각 수정사항이 발견되었다고 하셨는데,

a.py의 수정사항이 b.py에 영향이 없고

b.py의 수정사항이 a.py에 영향이 없다면 

각각의 브랜치에서 a.py, b.py 를 수정하신 뒤 pull request를 날리셔도 무방합니다.

(질문 2)

말씀하신 상황은 a.py의 수정이 b.py에도 영향을 끼치는 상황인 것 같습니다.

이 경우에는 두 번째로 말씀하신 상황

2) (1회 pr) 충돌을 막기 위해서 a.py와 b.py에 대한 변경사항을 하나의 브랜치에 담아서 pr해야 하는지

이것이 맞습니다. 

하지만 프로젝트를 진행하는 인원들끼리 커뮤니케이션이 원활이 일어나지 않거나,

본의아니게 수정한 코드의 영향도를 오판한 경우 세 번째로 말씀하신 상황

3) (시간차를 두고 2회 pr) 아니면 a.py에 대한 pr이 merge될 때까지 충분히 기다린 다음에, 그렇게 '변경된 패키지'를 local로 다시 clone해 온 다음 그제서야, b.py에 대해 pr을 진행하면 되는 것인지

이 경우도 왕왕 발생합니다.

Pull Request를 나누어 보낼 때에는 영향을 끼치지 않는 패치 단위로 보내는 것이 좋습니다.

서로 영향을 끼치는 Pull Request를 두 개로 보내게 된다면 말씀하신 충돌이 발생할 수 있기 때문입니다.

수정한 코드가 프로젝트 전체에서 어느 정도의 영향도를 끼치는지,

따라서 Pull Request는 하나로 보내는 게 나을지 두 개로 나누어 보내는 것이 나을지는 

Pull Request를 보내는 사람이 재량껏 판단할 몫입니다 :)

김백현님의 프로필

김백현

질문자

2021.08.02

답변 감사합니다! 의문이 해결되는군요. 선생님 강의와 답변 덕분에 첫 pr을 성공적으로 진행했습니다 ㅎㅎ

다행입니다, 화이팅입니다! :)