Drop unneeded GitTreeStorage
[egit.git] / README
blob4c46c7167e60aa22c2ea48aa26044aee3cd3255c
1             == Java GIT and Eclipse GIT plugin ==
3 Parts of this package are licensed under the GPL, and others are
4 licensed under the LGPL and EPL.  Please refer to the COPYING
5 and LICENSE files for the complete licenses within each package,
6 and please refer to the individual source file header to determine
7 which license covers it.
10 This package is actually composed of three major components:
12   org.spearce.jgit/
14     A pure Java library capable of being run standalone, with no
15     additional support libraries.  Some JUnit tests are provided
16     to exercise the library.  The library provides functions to
17     read and write a GIT formatted repository.
19     All portions of jgit are covered by the GPL.  Absolute no EPL
20     contributions are accepted within this package.
22   org.spearce.egit.core/
24     An Eclipse plugin providing an interface to org.spearce.jgit
25     and support routines to allow processing against the Eclipse
26     workspace and resource APIs, rather than the standard Java
27     file APIs.  It also supplies the team provider implementation.
29     Portions of this package are covered under the LGPL and others
30     under the EPL.  Refer to individual file headers for details.
32   org.spearce.egit.ui/
34     An Eclipse plugin providing the user interface on top of
35     org.spearce.egit.core.
37     Portions of this package are covered under the LGPL and others
38     under the EPL.  Refer to individual file headers for details.
41             == WARNINGS / CAVEATS              ==
43 - The Eclipse plugin doesn't always save the workbench state when
44   projects get closed or the workbench is shutdown.  This means
45   the current state of files may be lost.
47 - The plugin could lockup your Eclipse workbench.  I've tried to
48   make it stable and function in such a way that it can't crash
49   the workbench, but that doesn't mean it won't.  :-)
51 - This package might eat your files.  Everything I've added to a
52   repository with it has unpacked properly both with itself and
53   with the canonical C based implementation, but that doesn't mean
54   it won't generate a corrupt object.
56 - This package cannot read the new loose object format header
57   just added to canonical GIT in mid-July 2006 by Linus Torvalds.
58   Support for that will be coming soon.
60 - This package won't damage an existing symlink stored within a
61   repository but it can't create a new symlink from the filesystem,
62   nor can it extract a symlink from the repository to the filesystem.
63   This is due to Java's lack of symlink support.
65 - It may take a long time to connect the GIT team provider to an
66   existing project full of files as the cache tree needs to be
67   generated from scratch.  This can take a while as most Java SHA1
68   implementations are not exactly the fastest SHA1 implementations
69   available.
72             == Package Features                ==
74   org.spearce.jgit/
76     * Read loose and packed commits, trees, blobs, including
77       deltafied objects.
79     * Write loose commits, trees, blobs.
81     * Write blobs from local files or Java InputStreams.
83     * Read blobs as Java InputStreams.
85     * Copy trees to local directory, or local directory to a tree.
87     * Create an N-way structual difference between N trees
88       (minimum of 2, maximum is limited only by available memory).
90     * Lazily loads trees as necessary.
92     * Read and write .git/config files.
94     * Create a new repository.
96     * Read and write refs, including walking through symrefs.
98   org.spearce.egit.core/
100     * Supplies an Eclipse team provider.
102     * Connect/disconnect the provider to a project.
104     * Search for the repositories associated with a project by
105       autodecting the GIT repository directories.
107     * Store which repositories are tied to which containers in the
108       Eclipse workspace.
110     * Maintains a cache tree holding a snapshot of the workspace.
111       The cache tree is diff'd against the current `HEAD` to show
112       file status in the decorator.
114     * Runs a checkpoint job to flush the cache tree to the repository
115       on a periodic basis.
117     * Tracks moves/renames/deletes and reflects them in the cache
118       tree.
120     * Resolves through linked containers.
122   org.spearce.egit.ui/
124     * Connect team provider wizard panels.
126     * Connect to GIT team provider by making a new repository.
128     * Connect to GIT team provider by searching local filesystem
129       for existing repository directories.
131     * Team actions: track (add), untrack (remove), disconnect.
133     * Resource director shows file/directory state in the explorer
134       various views (e.g. Navigator and Package Explorer).
137             == Missing Features                ==
139 - Commit from within the Eclipse UI.
141 - Difference work file against historical version and display
142   the difference in the Eclipse difference viewer.
144 - GIT network protocol to pull objects from a remote repository or
145   push objects to a remote repository.
147 - Common base computation for a merge base.
149 - Generate a GIT format patch.
151 - Apply a GIT format patch.
153 - Documentation.  :-)
156             == About GIT                       ==
158 More information about GIT, its repository format, and the canonical
159 C based implementation can be obtained from the GIT websites:
161   http://git.or.cz/
162   http://www.kernel.org/pub/software/scm/git/
163   http://www.kernel.org/pub/software/scm/git/docs/