|
From: | Steinar Bang |
Subject: | bug#8756: 23.3; vc-git.el doesn't use --follow argument in vc-git-print-log |
Date: | Sun, 12 Jan 2014 00:32:56 +0100 |
User-agent: | Gnus/5.130008 (Ma Gnus v0.8) Emacs/24.3 (windows-nt) |
>>>>> Steinar Bang <sb@dod.no>: > To get the sha1/path infomation one can do the command > git log --follow --name-only --pretty=oneline > path-to-current-version-of-the-file > and then parse out the sha1/path pairs. Some example code: (let ((git-result (split-string (shell-command-to-string "cd ~/git/renametest/;git log --follow --name-only --pretty=oneline application/main.txt") "\r?\n")) (sha1-path-map) (sha1) (path)) (while git-result (setq sha1 (car (split-string (car git-result)))) (setq git-result (cdr git-result)) (setq path (car git-result)) (setq git-result (cdr git-result)) (add-to-list 'sha1-path-map (cons sha1 path))) (cdr sha1-path-map)) Which results in the following alist of sha1-to-path: (("e5984c6a9e8e015dc521fb6a1756a88d5ffd676d" . "hoved.txt") ("b35723cfbc91a3108469091c8c77ee91107e1ab8" . "hoved.txt") ("2b0f570422db1e0fac39697d908b31eb70e895f5" . "main.txt") ("dd99483cda11b4ab040135767655c07c5cf07efb" . "main.txt") ("9b47cdca956a59b4582c67d24f9474a576aff7b9" . "main.txt") ("313aa2f727fefc9e50354380cb9fb3a70401b5f3" . "application/main.txt") ("09d1bf6aa4dcd20dd36ca7668b75809e794428e0" . "application/main.txt")) (The cdr on the return value, is because the list was headed by a (nil) and I couldn't figure out where it came from)
[Prev in Thread] | Current Thread | [Next in Thread] |