github 통합 단추는 추가 혼란 '머리' 를 남깁니다

4233 단어 hg-git

묘사

비슷한 문제를 발견했어요.https://github.com/schacon/hg-git/issues/217이 문제를 좀 더 잘 묘사할 수 있는지 봅시다.주의해라. 그 중 일부는 내가 GitHub의 '옳은' 행위를 오해했을 수도 있지만, 나는 여기에 반드시 '진정한' 버그로 간주해야 한다고 생각한다.
제가 계속 하고 있는 프로젝트가 있어요(https://github.com/ivansafrin/Polycode) 갈라진 부분이 많고, 몇 개의 끌기 요청이 있는데, 그 중 일부는 몇 주 후에도 열리고, 일부는 닫힌다.내가 이 저장소에서 꺼냈을 때, 나는 몇 개의 '헤드' (하위 버전의 수정이 없고 hg heads 접근 목록을 사용할 수 있음) 를 보았다.처음에는 요청의 다른 지점을 끌어오는 것처럼 보였는데, 그 중 일부는 헤더에서 종료되었다.좋아, 듣기에 매우 합리적이다.
하지만!그리고 나서 내가 다가가서 보니 일이 이상하게 변했다.나는 Mercurial 1.8.2로 ivansafrin의 Polycode를 새로운 복제한 다음github '네트워크' 그림과MacHg가 인쇄한 수정도를 비교했다.알겠습니다.
네트워크:https://github.com/ivansafrin/Polycode/network
마하:http://i.imgur.com/WyJ1g.pnghg heads 여섯 개의 머리를 열거했다.이 중 네 개는 GitHub 병합 버튼 사용자가 작성한 것입니다.이와 함께 MacHg 캡처의 96, 91, 87처럼 의미 있는 내용은 하나도 없다. 이 수정들은 GitHub의 '네트워크' 그림에 나타나지 않았다.이와 함께 상금 총액은 이만 합병 인력거 요청 시기와 일치하는 것으로 보인다.예를 들어 github 버전 f6303에서 Ivan은 "LeeRichmond/master에서 온 합병 요청 #21"을 제출했다.이것은 MacHg 화면 캡처에서 r97로 보이지만,github 병합 단추로 만든 추가 스팸 버전 r96이 동시에 나타납니다.(추가 자질구레한 일: r96과 r97을 구분하면 전혀 다르지 않습니다. 만약 내가 'hg 북' 을 입력한다면, 단지 한 버전만 책갈피로 열거됩니다.)
내가 보기에git방면에서 r96과 r97(예를 들어)은 같거나 r97이 r96의 하위 버전이거나 r96/'합병 버튼'의 수정판은 보이지 않는다.그러나 변덕스러운 면에서 어떤 이유로 볼 수 있다.그리고git 사용자의 입장에서 볼 때 그들은 존재하지 않기 때문에 영원히 조작되지 않을 뿐만 아니라 하위 버전도 받지 않을 것이다. 이것은 그들이 영원히 사라지지 않을 뿐만 아니라 인출 요청이 증가함에 따라 이런 쓰레기 버전의 수량은 영원히 증가할 것이다.그래서:
- 내가 보기엔(?)벌레처럼.
- 만약 이것이 버그가 아니라면github 데이터 모델에 관한 일부 것들이mercurial로 잘 전환되지 않았다면 hggit나'github 합병 단추'실현에 아직도 가용성 문제가 존재할 것이다. 왜냐하면 대부분의 hggit 사용자들이github를 사용할 것으로 예상하기 때문이다.만약github에서pull 요청을 사용하면 hgheads 기능을 파괴할 수 있으며, 이것은 플랫폼의 hggit로서 불리할 수 있습니다
- 그게 안 되면 이 쓰레기들을 처리하는'정확한'방법이 뭐죠?만약 내가 hg commit - 이 수정된 지점들을 닫는다면, 제목 목록을 남길 것입니다. 그러나 만약github로 다시 돌아가면 무슨 일이 일어날지 확실하지 않습니다. 물론, 이 변경 사항들은 나의 지점에만 적용됩니다.나는 요청을 ivansafrin으로 잘 되돌릴 수 없다. 왜냐하면 요청을 합병하면 새로운 혼란이 생기기 때문이다. |
그리고 마지막으로 나는 곤혹스러웠다. 이것이 바로 내가 맨 위에서 약속한 진정한 버그였다.내가 위의 단락에서 묘사한 것은 이판사핀/polycode에서 온 새로운 복제이다.그러나 내 작업 저장소에는 두 개의 머리가 있다.
$hg 경로
기본값=git+ssh://[email protected]:mcclure/Polycode.지트
상위 = 기트 +ssh://[email protected]:ivansafrin/Polycode.지트
나는 기본 상태에서 밀고 당기며 주기적으로 hg pull upstream 홈 저장소에서 새 수정판을 얻는다. (나는 이것이 정확한 방법이라고 생각한다.)나는 이미 이렇게 몇 주 동안 했는데, 시간의 추이에 따라 다른'github 합병 버튼'의 수정은 어디에서 오는지 모르겠다.내 작업 라이브러리에서, 만약 내가 ivansafrin/Polycode fresh(또는 mcclure/Polycode fresh를 복제한 다음에 ivansafrin/Polycode에서 추출한 것) 7개의 'Github 통합 단추' 헤더를 보았다면,
217기 논평에서 "어쩌면 당신의 요청의 출처는 역사를 다시 쓰는 것이기 때문에 hg에 존재하지 않는 변경을 얻었을지도 모른다"는 지적이 나왔다.이것은 아마도 지금 벌어지고 있는 일일 것이다. 만약 내가 hg heads | grep user: 작업 저장소에 104개의 수정이 있고, 새로 서명한 ivansafrin/Polycode나 mcclure/Polycode에 101개의 수정이 있다면.그러나 제 이해는 ivansafrin/Polycode의 관리자는 특별하거나 신기한 일을 하지 않고 github 웹 인터페이스와github for mac gui 클라이언트를 사용합니다.따라서 github의 통합 도구가 github의 hg git 플러그인을 곤혹스럽게 하는 방식으로 역사를 다시 쓰고 있다면,github의 관점에서 볼 때, 이것도 가용성 문제일 수 있다. ("추가 수정을 없애는 정확한 방법은 무엇입니까?"문제도 여기에 있다).
나는 이것이 일리가 있기를 바란다. 고마워.hg log 네, 최근에 도입된 것입니다. 저희(GitHub)는 머리/명칭 공간 밖에서 라를 위해 공개 인용을 요청하고 라를 위해 임시 합병 제품을 공개합니다.너는 이곳에서 그것의 모습을 볼 수 있다.
$ git ls-remote origin
9caa40dca60562aade441b6c14020e1716b55de3    HEAD
9caa40dca60562aade441b6c14020e1716b55de3    refs/heads/master
bedc1bda8c38455df74e5acf54b0df5cb09c9494    refs/pull/13/head
1aeec1014a007294bb9e30500637144fd92a5960    refs/pull/13/merge
623b42fb1d75e6112cf09f22b76d78662436e5dc    refs/pull/14/head
d54049aaee01743743043dffecfcd1b7da897ffc    refs/pull/14/merge
992e27761dbb848c8c7334241bd9801e25b7dbdf    refs/pull/20/head
be4e98c07ddcaed29f487d3ec8d719e0688f975a    refs/pull/20/merge
4070760842102898f42c9eeb336a3a37880baece    refs/pull/21/head
b08f983ac5f8af53e8190b0b2b43082f2c0be619    refs/pull/21/merge
진정한 문제는 우리가 이것을 추가한 것이 아니라 hggit가refs/heads 이름 공간 이외의 제출을 변경 집합으로 바꾸고 있습니다. 이것은 해서는 안 되는 것입니다.그것 때문에 중단될 수도 있지만, 거기에 저장된 다른 것들 때문에 중단될 수도 있다. 예를 들어 참고 문헌이나 주석을 바꾸는 것이다.나는 hggit 소스 코드를 볼 수 있다. (나는 이미 한동안 그것을 접촉하지 않았다.) 이것은 빠른 복구인지 아닌지를 볼 수 있지만, 이것은 이 버그의 산물이다.일단 이것이 고정적이라면 재기지에서 가져올 수 있을 거라고 나는 믿는다.

토론 #1

내가 이걸 닫은 것은 오래 전부터https://github.com/schacon/hg-git/pull/223 ?

좋은 웹페이지 즐겨찾기