diff options
author | Shawn Pearce <spearce@spearce.org> | 2015-11-17 16:22:18 -0800 |
---|---|---|
committer | Shawn Pearce <spearce@spearce.org> | 2016-01-07 15:40:26 -0800 |
commit | 73eb32be829c0f2167c2796ce1ba60bdf4a6b88a (patch) | |
tree | dc105868ef4abc194c35da0dd9e17723c46c0e0f /org.eclipse.jgit.test/META-INF | |
parent | 24cd8e170d377cef87166d43ca25bfa2340755c6 (diff) | |
download | jgit-73eb32be829c0f2167c2796ce1ba60bdf4a6b88a.tar.gz jgit-73eb32be829c0f2167c2796ce1ba60bdf4a6b88a.zip |
RefTree: Store references in a Git tree
A group of updates can be applied by updating the tree in one step,
writing out a new root tree, and storing its SHA-1. If references
are stored in RefTrees, comparing two repositories is a matter of
checking if two SHA-1s are identical. Without RefTrees comparing two
repositories requires listing all references and comparing the sets.
Track the "refs/" directory as a root tree by storing references
that point directly at an object as a GITLINK entry in the tree.
For example "refs/heads/master" is written as "heads/master".
Annotated tags also store their peeled value with ^{} suffix, using
"tags/v1.0" and "tags/v1.0^{}" GITLINK entries.
Symbolic references are written as SYMLINK entries with the blob of
the symlink carrying the name of the symbolic reference target.
HEAD is outside of "refs/" namespace so it is stored as a special
"..HEAD" entry. This name is chosen because ".." is not valid in
a reference name and it almost looks like "../HEAD" which names
HEAD if the reader was inside of the "refs/" directory.
A new Command type is required to handle symbolic references and
peeled references.
Change-Id: Id47e5d4d32149a9e500854147edd7d93c1041a39
Diffstat (limited to 'org.eclipse.jgit.test/META-INF')
-rw-r--r-- | org.eclipse.jgit.test/META-INF/MANIFEST.MF | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/org.eclipse.jgit.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.test/META-INF/MANIFEST.MF index 37fd367171..f78fe5b24b 100644 --- a/org.eclipse.jgit.test/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.test/META-INF/MANIFEST.MF @@ -26,6 +26,7 @@ Import-Package: com.googlecode.javaewah;version="[0.7.9,0.8.0)", org.eclipse.jgit.internal.storage.dfs;version="[4.2.0,4.3.0)", org.eclipse.jgit.internal.storage.file;version="[4.2.0,4.3.0)", org.eclipse.jgit.internal.storage.pack;version="[4.2.0,4.3.0)", + org.eclipse.jgit.internal.storage.reftree;version="[4.2.0,4.3.0)", org.eclipse.jgit.junit;version="[4.2.0,4.3.0)", org.eclipse.jgit.lib;version="[4.2.0,4.3.0)", org.eclipse.jgit.merge;version="[4.2.0,4.3.0)", |