Glog 이후 파일을 볼 수 없음 - 따라가기

3387 단어 vim-fugitive

묘사

Glog는 파일의 제출을 표시하지 않았습니다. 그리고 제가 원하는 제출은 파일 이름이 다른 시기에서 온다는 것을 깨달았습니다.그리고 Glog --follow를 사용해서 좋은 제출 목록을 얻었지만 현재 파일 이름 이전 버전을 열려고 했을 때 다음과 같은 정보를 얻었습니다.
Error detected while processing BufReadCmd Auto commands for "fugitive://**//[0-9a-f][0-9a-f]*":                   
fugitive: rev-parse 6f53cb1cc311025f0c21d142af06fbfbda113fc4:src/nvim/memfile.c: fatal: Needed a single revision

토론 #1

git log --follow <file>는 어떤 제출이 어떤 파일 이름을 사용했는지에 대한 정보를 알려주지 않습니다.우리가 어떻게 알았지?

토론 #2

제가 전에 정보를 잘 몰랐나 봐요.Glog --follow가 실행 중입니다. 빠른 복구 목록에서 검사할 수정 사항을 포함하는 항목을 얻었습니다.
그러나 개정 버전을 열려고 할 때(quickfix 창에서 Enter 키를 누르면) 오류가 발생합니다.
내가 열 수 있는 수정판과 내가 열 수 없는 수정판 사이의 유일한 차이점은 파일의 이름이 바뀐 후/이전에 있는지 여부이다.

토론 #셋

네, 현재 파일 이름을 사용하는 것은 하드코딩이기 때문입니다. git log 실제 파일 이름을 알려주지 않았기 때문입니다. 제가 말한 바와 같이.

토론 #4

아, 죄송합니다. 이제 알겠습니다.
명령줄에서git를 어떻게 사용해서 이 점을 실현하는지 연구해 보겠습니다.만약 방법이 있다면, 아마도 우리는 무엇을 할 수 있을 것이다.
고맙습니다.

토론 #5

는 제출할 때마다 생성/삭제/이름 변경에 대한 정보를 제공하는 것 같습니다.예를 들어, 내 예에서는 파일에 대한 로그에서 다음 정보를 볼 수 있습니다.
commit da51dc9cf202772f60bd2da975dbef257bd9237c
Author: Eliseo Martínez <[email protected]>
Date:   Mon May 12 02:25:17 2014 +0200

    Introduce nvim namespace: Move files.

    Move files from src/ to src/nvim/.
    - src/nvim/ becomes the new root dir for nvim executable sources.
    - src/libnvim/ is planned to become root dir of the neovim library.

 rename src/{ => nvim}/memfile.c (100%)
그리고 사용자가'-follow'를 주면 Glog는 내부에'--summary'를 추가하고 제출할 때 이 정보를 사용하여 파일 이름을 계산할 수 있습니다.이 계산은 머리에서 목표 머리까지의 모든 제출을 처리하고 파일 이름을 누적해야 한다. (여러 번 이름을 바꿀 수 있다.)그러나 적어도 파일의 과거 버전은 표시할 수 있다.너는 이것이 가능하다고 생각하니?
나는 지금 모든 제출을 하나하나 훑어보지 않고 목표가 제출한 파일 이름을 한 번에 얻을 수 있는지 보려고 한다.나는 이것이 가능하다고 의심하지만, 나는 노력할 것이다.git log --follow --summary <path> 완전히 다시 쓰기를 원하지 않으면 출력은 제출할 때마다 파일 이름을 표시해야 합니다.원격 버전

토론 #6

에서 줄 번호를 어떻게 추출하는지 보실 수 있습니다. 차이의 파일 이름은 사용할 수 있지만, 필요한 제출 경로와 한꺼번에 결합하는 방법은 확실하지 않습니다.:Glog네.나는 이 생각이 효과가 있을 것이라고 생각한다.하지만 나는 마지막 1마일을 실패했다.네가 답을 알지 못하도록 내가 설명해 줄게.
제출할 때마다 파일의 실제 이름을 얻을 수 있습니다. :1,10Glog 생성된git 명령에 (파일 기록을 찾을 때만, 이것은 사용하지 않을 때).

토론 #7

도 추가할 수 있다고 생각합니다. 왜냐하면 사용자가 하나의 파일의 역사 기록을 볼 때 사용자가 원하는 것이기 때문입니다.
그리고 제출할 때마다 diff 줄과++ 줄에서 파일을 제출할 때의 이름을 얻을 수 있습니다.
그리고 나머지는 이 이름과fugitive://...환매/해시를 포함하는 접두사입니다.경로를 포함하지 않도록git의 멋진 형식을 조정합니다.
내가 말한 바와 같이 우리가 이 두 부분을 가지게 되면fugitive://...접두사) 와 실제 파일 이름은++line에서 조합하면 정확한 임시 URL을 얻을 수 있습니다.
그게 내가 못한 일이야.나는%D%X%f와%P%Q%f로 미친 듯이 여러 가지 방법을 시도해 보았지만, 이 부분들을 한데 묶으려고 했지만, 그것들은 내가 상상했던 것처럼 그렇게 작동하지 않는 것 같았다.
예를 들어, 나는 첫 줄에서% D로 도주범을 포획할 수 있다고 생각한다./접두사는++ 줄에서% f를 포획하는 것이 가능하다. ('디렉터리' 를 '파일' 에 추가하면 정확한 '파일' 을 얻을 수 있기 때문이다.)
근데 내가 뭘 놓친 것 같아.
그럼, 내가 희망이 있다고 생각해?-p 나는 한 무더기의 파일을 이동하는 프로젝트를 할 때 이 점을 알아차렸다...--follow 비헤이비어를 사용할 경우 가장자리가 많이 나타납니다.사실git가 일지를 작성한 이후로설정 옵션을 따라 이 프로젝트를 처리하기 위해서 사용합니다.

토론 #8

의 작업 원리는 파일 변경이 이름이 바뀐 것을 볼 때 찾으려는 파일 경로를 바꾸는 것이기 때문에 Glog는 비슷한 일을 할 수 있는 것처럼 보인다는 것이다.vimscript를 배워야 할지 모르겠어요...

좋은 웹페이지 즐겨찾기