aboutsummaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit.http.apache
diff options
context:
space:
mode:
authorJonathan Nieder <jrn@google.com>2014-06-02 12:03:45 -0700
committerMatthias Sohn <matthias.sohn@sap.com>2014-06-04 10:26:01 -0400
commit9b46a47fb7eb68967f1a2550c5393f54d1e255ad (patch)
treeb85b3cce65cafe0734258654da4265808ed639d0 /org.eclipse.jgit.http.apache
parent386dff22716ab33e724ceb9e2de287f43bd88447 (diff)
downloadjgit-9b46a47fb7eb68967f1a2550c5393f54d1e255ad.tar.gz
jgit-9b46a47fb7eb68967f1a2550c5393f54d1e255ad.zip
blame: Un-break isFile check in tree walk
Originally, blame's walk to find a scapegoat to blame for a file walking backward from a commit used the test treeWalk.getFileMode(0).getObjectType() != OBJ_BLOB to throw out gitlink (submodule) entries. Later, 52500d3264d2 (blame: Micro optimize blob lookup in tree, 2014-04-17) changed that test to (treeWalk.getRawMode(0) & TYPE_FILE) != TYPE_FILE These checks are not the same, though: the older test accepts files and symlinks, while the newer one accepts files, symlinks, and gitlink (submodule) entries. This is particularly broken in the submodule case --- trying to parse the referred-to commit as a blob produces caught an exception: GET /gerrit/+blame/master/plugins/reviewnotes HTTP/1.1 org.eclipse.jgit.errors.MissingObjectException: Missing blob 61702414c046dd6b811c9137b765f9db422f83db Stick to just (possibly executable) files instead. Symlinks are not line-oriented data so blame on a symlink is not likely to be useful. A quick grep for '& TYPE_' doesn't find any other instances of this bug. Change-Id: Iebcc91f1bee3c91adda51dccd6372e8302bf23fe Signed-off-by: Jonathan Nieder <jrn@google.com>
Diffstat (limited to 'org.eclipse.jgit.http.apache')
0 files changed, 0 insertions, 0 deletions