git-annex/doc/bugs/diff_driver_using_hash_without_subdir.mdwn
2021-09-24 14:20:40 -04:00

78 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

### Please describe the problem.
I have a strange problem with diff driver.
I wrote a diff driver which normally works, but one of my repo
it comes up with an error that it can open `.git/annex/objects/SHA256E-s4545--9715...`.
Indeed there is no such file, the file being not directly under `.git/annex/objects` but under `.git/annex/objects/mz/Px`.
Also when I examine the file in git its value is `.git/annex/objects/SHA256E-s4545--9715...` but I thought it should have been `.git/annex/objects/mz/PX/SHA256E-s4545--9715...`.
### What steps will reproduce the problem?
Just use `git diff HEAD` on my corrupted repo.
### What version of git-annex are you using? On what operating system?
Version 7. I don't remember which version was used to create the repo.
### Please provide any additional information below.
[[!format sh """
# If you can, paste a complete transcript of the problem occurring here.
# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log
git diff HEAD . [20:10:33]
1:dumps/pages.sql
2:/tmp/gwSIvM_pages.sql
3:1bb7ca74a6701b1ea0d4f12ae64cfc3e83e22bad
4:100644
5:dumps/pages.sql
6:0000000000000000000000000000000000000000
7:100644
------- /tmp/gwSIvM_pages.sql-
head: cannot open '.git/annex/objects/SHA256E-s4542--9715a9ca90cad176f69fb91ed650a02afb2885c96975064d49e85230513c2d9e.sql' for reading: No such file or directory
-------- $ target
--
-- PostgreSQL database dump
--
-- Dumped from database version 13.3
-- Dumped by pg_dump version 13.3
cat ~/.local/bin/mydiff.sh [20:16:07]
echo 1:$1
echo 2:$2
echo 3:$3
echo 4:$4
echo 5:$5
echo 6:$6
echo 7:$7
if [ "$5" = "/dev/null" ]
then
echo "NULL"
target=$1
else
target=$5
fi
#echo $@
echo "------- $2-"
head .git$(cat $2)
echo "-------- $target"
head $target
echo "-------- DIFF"
#colordiff $1 $2
#git --no-pager diff --color=auto --word-diff --no-ext-diff --no-index "$2" "$target"
echo diff -d --color=always $2 $target
#git --no-pager diff --color=auto --no-ext-diff --no-index -U0 "$2" "$5"
# End of transcript or log.
"""]]
### Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)
Yes and it works really well (and my diff driver works on other repos too).
> [[notabug|done]]