새로운 원격 누드git 서브 모듈 지원
4321 단어 vim-fugitive
묘사
- this commit까지git submodule add
클론을 통해 생성gitdir 파일이 있는 환매 프로토콜지트?이것은 반대로 또 노출된 것을 가리킨다
디렉토리 이름이
.git
로 끝나지 않는 저장소입니다.$ git init MyFoo; cd MyFoo
Initialized empty Git repository in /tmp/MyFoo/.git/
$ git submodule add git://github.com/tpope/vim-fugitive my/path/to/fugitive
Cloning into 'my/path/to/fugitive'...
$ cat my/path/to/fugitive/.git
gitdir: /private/tmp/MyFoo/.git/modules/my/path/to/fugitive
$ ls /private/tmp/MyFoo/.git/modules/my/path/to/fugitive
HEAD branches config description hooks index info logs objects packed-refs refs
탈주범은 현재 원격git 디렉터리를 처리하지 않으며 처리하지 않습니다디렉토리 이름이
.git
로 끝나지 않는 원시 저장소 처리(cf. issue 117)
ExtractGitDir()를 쉽게 수정하여 원격git dir로 돌아가지만
그래서 나는 누드 환매 검사를 실시하지 않기로 결정했다. 왜냐하면
이 문제를 해결하는 많은 방법(관례, 포격 등).
메리 크리스마스!
토론 #1
그래, 불행히도 이것은 간단한 해결 방안이 아니야.검측.git
파일은 매우 간단하지만 .git
이 작업 트리에 있다고 생각하는 곳이 많다.예를 들어 914에서 파일을 찾았을 때 674의 끝에 놓아라.또는 다른 한편, 호출fugitive://
은 제출 메시지가 .git
에 있다고 가정한다.가장 어려운 것은 :Gcommit
디렉터리 (예: .git/COMMIT_EDITMSG
이나 .git
에서 파일을 편집할 때 작업 트리로 돌아가야 한다는 것입니다.현재, 우리는 그것이 부모 디렉터리라고 가정한다.가장 합리적인 방법은git dir에서 작업 트리에 이르기까지의 해시 맵을 저장하는 것이라고 생각합니다.그리고
COMMIT_EDITMSG
중개인이 아닌 실제git 디렉터리를 항상 가리키도록 하세요.이것은 우리에게 문제를 가져왔다. 즉, 두 개의 작업 트리가 같은git dir를 가리키는 것이다. 이것은 불가능하지만, 이것은 불가피할 수도 있다.만약 우리가 옳다면, 그것도 기호 링크의git 디렉터리를 처리해야 한다.이것은 매우 중요하지만, 내가 설명하기를 바라는 바와 같이, 이것은 매우 어려워서, 나는 언제 할 수 있을지 확실하지 않다.하지만 쓴 것은 큰 걸음이었다.
config
제가 #168에서 발표한 b:git_dir
과토론 #2
함수는 영감이 아니에요?VimScript에서 비슷한 작업을 수행해야 하지만 더 많은 참여가 필요할 수 있습니다.git-root
나는 그것들을 거절했다. 왜냐하면git 디렉터리에 작업 트리를 가리키는 내용이 없다는 것을 거의 확신할 수 있기 때문이다. 그러나 나는 하위 모듈에 대해 이 사실을 검증한 적이 없다고 생각한다.내가 이 점을 확인할 수 있도록 현실 세계에서 사용하는 그다지 크지 않은 서브 모듈 (누군가의 점 파일) 을 연결할 수 있는 사람이 있습니까?git-dir
너는 나의 tilde를 시험해 볼 수 있다. 그것은 귀속자 모듈이 너무 많지 않다.토론 #셋
아하!나는 토론 #4
git 설정을 발견했다.이것은 하위 모듈이 아닌 모든 설정은 이 옵션을 명확하게 설정해야만 작동할 수 있다는 것을 의미하지만, 내가 보기에 이것은 좋은 일이다.그것은 공유git 디렉터리를 완전히 없애서 나의 가장 큰 걱정을 없앴다.그래서 나는 그것을 실시하기 시작했다.현재, 우리가 그것을 필요로 할 때마다 설정을 읽고 작업 트리를 검사하기 때문에, 언제든지 캐시할 수 있도록 이 해시 맵을 추가해야 할 수도 있습니다.그런데 효과가 났어!
만약 문제가 없다면 나는 매우 놀랄 것이다. 그러나 너희들이 보고하기 전에, 나는 이 문제가 이미 해결되었다고 생각한다.
토론 #5
감사합니다.core.worktree
아주 좋아요!tpope토론 #6
에 감사 드립니다. 제가 작은 문제를 발견했습니다.git 서브 모듈 인덱스
토론 #7
현재 BufReadCmd 자동 명령 모드와 일치하지 않으므로자극: BufReadIndex().
pull 요청을 시작하여 모드를 다음과 같이 변경했습니다.
*.git/{,*/}index{,.lock}
나는 이것이 전면적이기를 바란다.감사합니다!
편집자
지원
토론 #8
모드를 인식하지 못했습니다.다음과 같이 변경되었습니다.*.git/{,**/}index{,.lock}
드래그 요청의 변경 사항이 수정되었습니다.project/.git/modules/subproj/index
아직 복구되지 않았으니 다시 열어야 합니다.**
일할 때토론 #9
대량의 허튼소리를 출력한다.나는:Gdiff
로 시작하는 이진 파일을 보았다고 생각한다.:Gstatus
@sorin ionescu는 당신 자신의tilde repo에 있어서 나에게 매우 좋습니다.DIRC
@tpop 이상.당신의 서브모듈 디렉터리는
토론 #10
,토론 #11
,토론 #12
와objects/
가 있습니까?refs/
색인 파일을 보여 주었습니다.네.
HEAD
버퍼 구역의 경로를 보면 그들 사이의 관계를 분명히 알 수 있을 것이다.내가 너에게 제기한 문제는 네가 보지 못하도록 위에서 말한 바와 같다.
config
다음은 명세서입니다.당신은 최근에 차를 끌어 본 적이 있습니까?나는 방금 네가 @guns의 드래그 요청이 없을 수도 있다는 것을 알아차렸다.
토론 #13
최근에 네가 가리키는 것은 지난 24시간 동안이다.답은 정해지지 않았다. 나는 테스트를 했다토론 #14
.이것은 효과가 있는 것 같다.감사합니다.:Gstatus
그건 아직 이르다.나는 지금 현재 상황을 볼 수 있고, 심지어는 약속을 시도할 수도 있다.그것은 제출 메시지를 저장하지만 제출하지 않습니다.토론 #15
복구되었습니다.Reference
이 문제에 관하여(새로운 원격 누드git 서브 모듈 지원), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://github.com/tpope/vim-fugitive/issues/139텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)