summaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit.pgm/resources
Commit message (Collapse)AuthorAgeFilesLines
* Add missing online help for Ketch server type option in CLI daemonMatthias Sohn2016-10-021-0/+2
| | | | Change-Id: I19d27bbdbfdb1c7a5a688e41dfcba73a142a1afd Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* CLI: implement option -d for deleting tagsNed Twigg2016-08-311-0/+2
| | | | | Change-Id: I438456b76aefd361384729686271288186d3be3b Signed-off-by: Ned Twigg <ned.twigg@diffplug.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Added a clean command.Ned Twigg2016-08-301-0/+5
| | | | | Change-Id: I05d5392789b5b64e6ee44f678556cf25dc30d7ba Signed-off-by: Ned Twigg <ned.twigg@diffplug.com>
* RepoCommand: remove --record-remote-branchesStefan Beller2016-05-251-1/+0
| | | | | | | | This function only works in bare mode, and the command line works in non-bare mode, so there's no point in pretending to support it here. Change-Id: Ia017aded93d072bdb9947ec08c424256c3abe438 Signed-off-by: Stefan Beller <sbeller@google.com>
* Fix help text for option --enable of command debug-rebuild-ref-treeMatthias Sohn2016-03-011-0/+1
| | | | | | | This fixes a MissingResourceException thrown when executing jgit debug-rebuild-ref-tree --help Change-Id: I637ea55084a913f5105ebf4cf2baef8b81877938 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Support Amazon S3 based storage for LFSMatthias Sohn2016-02-171-2/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a storage implementation storing large objects in Amazon S3. The AmazonS3Repository pre-signs download and upload requests. AWS access and secret key are expected to be in the $HOME/.aws/credentials file in the following format: [default] accessKey = ... secretKey = ... Use AWS version 4 request signing [1] because it is more secure and supported by all regions. The version 3 signing is not supported in newer regions. In follow up changes we should: - implement getVerifyAction() and do actual verification. Subclasses of S3Repository can implement caching for object meta data (size) in order to avoid extra roundtrips to S3. Verification should ensure that meta data store and content of S3 storage are in sync - HEAD request used in S3Repository.getSize() seems to always return Content-length 0 in contrast to the documentation [2]. So getSize() does detect if the object exists in S3 or not but in case the object exists it always returns size 0 [1] http://docs.aws.amazon.com/general/latest/gr/signature-version-4.html [2] https://forums.aws.amazon.com/thread.jspa?threadID=223616 Change-Id: Ic47f094928a259e5264c92b3aacf6d90210907a8 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com> Signed-off-by: Sasa Zivkov <sasa.zivkov@sap.com>
* Support LFS protocol and a file system based LFS storageMatthias Sohn2016-02-041-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement LfsProtocolServlet handling the "Git LFS v1 Batch API" protocol [1]. Add a simple file system based LFS content store and the debug-lfs-store command to simplify testing. Introduce a LargeFileRepository interface to enable additional storage implementation while reusing the same protocol implementation. At the client side we have to configure the lfs.url, specify that we use the batch API and we don't use authentication: [lfs] url = http://host:port/lfs batch = true [lfs "http://host:port/lfs"] access = none the git-lfs client appends the "objects/batch" to the lfs.url. Hard code an Authorization header in the FileLfsRepository.getAction because then git-lfs client will skip asking for credentials. It will just forward the Authorization header from the response to the download/upload request. The FileLfsServlet supports file content storage for "Large File Storage" (LFS) server as defined by the Github LFS API [2]. - upload and download of large files is probably network bound hence use an asynchronous servlet for good scalability - simple object storage in file system with 2 level fan-out - use LockFile to protect writing large objects against multiple concurrent uploads of the same object - to prevent corrupt uploads the uploaded file is rejected if its hash doesn't match id given in URL The debug-lfs-store command is used to run the LfsProtocolServlet and, optionally, the FileLfsServlet which makes it easier to setup a local test server. [1] https://github.com/github/git-lfs/blob/master/docs/api/http-v1-batch.md [2] https://github.com/github/git-lfs/tree/master/docs/api Bug: 472961 Change-Id: I7378da5575159d2195138d799704880c5c82d5f3 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com> Signed-off-by: Sasa Zivkov <sasa.zivkov@sap.com>
* debug-rebuild-ref-tree: Simple program to build a RefTreeShawn Pearce2016-01-071-0/+2
| | | | | | | | | | | This tool scans all references in the repository and writes out a new reference pointing to a single commit whose root tree is a RefTree containing the current refs of this repository. It alway skips storing the reference it will write to, avoiding the obvious cycle. Change-Id: I20b1eeb81c55dc49dd600eac3bf8f90297394113
* branch command: provide convenient and meaningful options helpAndrey Loskutov2016-01-021-0/+5
| | | | | | | Added tests for all options, fixed multi-valued options parsing. Bug: 484951 Change-Id: I5558589049544ea6c84932bc01f1f9df09e1f682 Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
* reset command: provide convenient and meaningful options helpAndrey Loskutov2015-12-291-0/+1
| | | | | | | | | | | | | | | | | | | | | This commit changes the jgit "reset" command line options help from this: jgit reset name [VAL ...] [-- path ... ...] [--hard] [--help (-h)] [--mixed] [--soft] name : Reset current HEAD to the specified state [...] to this: jgit reset [commit-ish] [path ... ...] [-- path ... ...] [--hard] [--help (-h)] [--mixed] [--soft] commit-ish : Reset to given reference name [...] Bug: 484951 Change-Id: I614e71101b4f9f46ef8f02379d1a9d135f3292d2 Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
* Add remote command to JGit CLIKaloyan Raev2015-12-111-0/+3
| | | | | | | | | | | | | | | | | | Supported subcommands are: - <none> (lists available remotes) - add - remove - set-url - update Supported options are: --verbose --push --prune Bug: 481316 Change-Id: I57c34ed6daabb7d308bc383b17c1ef4af433e714 Signed-off-by: Kaloyan Raev <kaloyan.r@zend.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Null-annotated Repository class and fixed related compiler errorsAndrey Loskutov2015-11-251-0/+1
| | | | | | | | | | | | | | | | | | | | | | org.eclipse.jgit.lib.Repository class is an example of the API which should be written with Java 8 java.util.Optional<T> type. Unfortunately this API is already released and widely used. The good clients are currently doing their best with checking return values for null and bad clients do not know how bad their code is. I've tried not to change any logic and to be as less intrusive as possible. Most of the JGit code was well prepared to this, only few classes needed some smaller fixes. This change fixes all compiler errors in JGit and replaces possible NPE's with either appropriate exceptions, avoiding multiple "Nullable return" method calls or early returning from the method. Because annotating getDirectory() and getFS() as Nullable would cause lot of additional changes in JGit and EGit they are postponed. Change-Id: Ie8369d2c9c5fac5ce83b3b1b9bc217d7b55502a3 Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
* git rev-parse: Add --verify optionThomas Meyer2015-11-191-0/+1
| | | | | | | Add the --verify option to be more compatible with git Change-Id: I225a36ecc4711fd2eb9af67ca8fb79681d94c587 Signed-off-by: Thomas Meyer <thomas.mey@web.de>
* RepoCommand: Add setRecordRemoteBranch option to record upstream branchStefan Beller2015-10-051-0/+1
| | | | | | | | | | | | | | | | | | | | | | On a server also running Gerrit that is using RepoCommand to convert from an XML manifest to a git submodule superproject periodically, it would be handy to be able to use Gerrit's submodule subscription feature[1] to update the superproject automatically between RepoCommand runs as changes are merged in each subprojects. This requires setting the 'branch' field for each submodule so that Gerrit knows what branch to watch. Add an option to do that. Setting the branch field also is useful for plain Git users, since it allows them to use "git submodule update --remote" to manually update all submodules between RepoCommand runs. [1] https://gerrit-review.googlesource.com/Documentation/user-submodules.html Change-Id: I1a10861bcd0df3b3673fc2d481c8129b2bdac5f9 Signed-off-by: Stefan Beller <sbeller@google.com>
* Changed default log4j log level from "WARNING" to "WARN"Andrey Loskutov2015-08-111-1/+1
| | | | | | Bug: 474674 Change-Id: I8be8934cf6cb3ee60567b59f8e836475efb780ac Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
* Include slf4j and log4j in jgit command lineMatthias Sohn2015-03-231-0/+6
| | | | | | | | | | | | | This enables the command line to log. Include log4j configuration to log warnings and errors to stderr. Exclude the dependencies which log4j 1.2.15 should have marked optional. See http://unitstep.net/blog/2009/05/18/resolving-log4j-1215-dependency-problems-in-maven-using-exclusions/ for details Change-Id: Ie730db4007fb7614fd7d130cd0858b1ac550066a Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* CLI status should support --untracked-filesKaloyan Raev2015-03-121-0/+1
| | | | | | | | | | | | | | | | | | A special options handler is added to properly handle the short -u alias of the option. The "normal" mode is not supported by this patch, because this mode of listing untracked files is not supported by the org.eclipse.jgit.lib.IndexDiff class. This mode is not necessary for my use case. It can be added later if anyone really needs it. The StatusTest is updated to cover all possible combinations of the --porcelain and --untracked-files options. Bug: 459319 Change-Id: I305ac95739cfed0c16735e0987844e57fa27e236 Signed-off-by: Kaloyan Raev <kaloyan.r@zend.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Add "--long" option to JGit describeChristian Halstrick2015-03-091-0/+1
| | | | | | | | | | | Native git supports "git describe --long". This will enforce returning a long description of a commit even if a tag is directly pointing to the commit (in contrast to just returning the tag name as it is now). This commit teaches JGits DescribeCommand and the describe command in the pgm package to support "--long". Bug: 460991 Change-Id: I65e179b79e89049c6deced3c71cb3ebb08ed0a8f Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Move console classes to pgm bundleMatthias Sohn2015-02-101-1/+6
| | | | | | | | | Since we updated minimum Java version to Java 7 the console bundle doesn't need to be a separate bundle anymore. Move the contained classes to the pgm bundle which is using these classes. Change-Id: If8e6f2d7405fdfe6f4b178673b4ccf99c67d4b64 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Add option --orphan for checkoutRĂ¼diger Herrmann2015-02-041-0/+1
| | | | | Change-Id: I546a93f3e147d8d6fc70094b22679c0d11cd8921 Signed-off-by: RĂ¼diger Herrmann <ruediger.herrmann@gmx.de>
* [pgm] Add missing help text for clone --bare optionMatthias Sohn2015-01-071-0/+1
| | | | | Bug: 456695 Change-Id: Ib6005e8453ecc871a9b72227e2593a3823f56010 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* [pgm] Implement clone using CloneCommandMatthias Sohn2014-12-221-0/+2
| | | | Change-Id: I56699b7bf9a71f673cb308d3015f51de5b06c1d9 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* [pgm] Add option --tags for ls-remoteMatthias Sohn2014-12-161-0/+1
| | | | | Bug: 444072 Change-Id: I52b470924609fc201e078d9d232aad257506728d Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* [pgm] Add option --heads for ls-remoteMatthias Sohn2014-12-161-0/+1
| | | | | | | | TODO: find a way to use option -h which is already captured by TextBuiltin's option --help which also uses the alias -h. Bug: 444072 Change-Id: Ie66584c2fc7fc224014a43cf928547703dd9d213 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Add "aggressive" option to GCChristian Halstrick2014-09-191-0/+1
| | | | | | | | | | | | | | | | | | | | JGit should offer the possibility to do a garbage collection in "aggressive" mode. In this mode garbage collection more aggressively optimize the repository at the expense of taking much more time. Technically a aggressive mode garbage collection differs from a non-aggressive one by: - not reusing packed objects found in old packs. Recompress every object - the configuration pack.window is set to 250 (the default is 10) - the configuration pack.depths is set to 250 (the default is 50) The associated classes in org.eclipse.jgit.api and the command line command in org.eclipse.jgit.pgm expose this new option. The configuration parameters gc.aggressiveDepth and gc.aggressiveWindow have been introduced to configure this feature. Bug: 444332 Change-Id: I024101f2810acf6be13ce144c9893d98f5c4ae76
* Handle -m option for Merge commandAxel Richard2014-08-301-0/+1
| | | | | | | | | Set the commit message to be used for the merge commit (in case one is created) Bug: 442886 Change-Id: Ie5ecc13822faa366f00b3daa07f74c8441cae195 Signed-off-by: Axel Richard <axel.richard@obeo.fr> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Don't prefix output from jgit status with '# 'Robin Rosenberg2014-07-191-1/+1
| | | | | | C Git does not do it anymore Bug: 439937 Change-Id: I20bdb787a00bba3e4adf269fd64ec6296bdc2a66
* Clarify comments in message properties files (and fix grammar)Robin Stocker2014-06-301-2/+2
| | | | | | Bug: 438261 Change-Id: I7b98475886ef789ae7635d8c9e008fc1aa00d534 Signed-off-by: Robin Stocker <robin@nibor.org>
* Fix incorrect "''" in CLIText.propertiesRobin Stocker2014-06-301-1/+1
| | | | | | | | This message is not processed by MessageFormat. Bug: 438261 Change-Id: If75d8f3cd3f356a56623eee96b64e8845de5eb38 Signed-off-by: Robin Stocker <robin@nibor.org>
* Add a comment to the message properties files on how they are processedRobin Rosenberg2014-06-291-0/+5
| | | | Change-Id: I073f0c2c0729e6a5d3f1834203f0cfeb4c462eda
* Remove duplicate string in CLIText.propertiesRobin Rosenberg2014-06-291-1/+0
| | | | | Bug: 438261 Change-Id: Idd6839465ea36d072b1c4393f5abd2f39da02b62
* Fix formatting errors in error messagesRobin Rosenberg2014-06-291-2/+2
| | | | | | | | | {} is plain wrong and is not accepted by MessageFormat, the other risk becoming wrong if another single quote is introduced in the future and sets a bad example. Bug: 438261 Change-Id: I2948ca90c10f6ec2574f7f2b9be0a72821ea4daf
* Added groups support to repo subcommand.Yuxuan 'fishy' Wang2014-04-231-0/+1
| | | | | Change-Id: Id0e7663b6ac4f6938fdcacaf2158107b6285fc25 Signed-off-by: Yuxuan 'fishy' Wang <fishywang@google.com>
* Added the command line of jgit repo.Yuxuan 'fishy' Wang2014-04-231-0/+3
| | | | | Change-Id: Ib809b00c236a9c44422a872ae801b060f5b26808 Signed-off-by: Yuxuan 'fishy' Wang <fishywang@google.com>
* Implement "git branch --contains" in pgmRobin Stocker2014-03-071-0/+1
| | | | | | Bug: 425678 Change-Id: Ib59e05a0bde58562cc61e6e3000df761660b468e Signed-off-by: Robin Stocker <robin@nibor.org>
* CLI clone command should support --no-checkoutKaloyan Raev2014-02-261-0/+1
| | | | | | | | doCheckout() is called only if --no-checkout option is not set. Bug: 428917 Change-Id: I350bef446dd7a37613b9506aae99679569bd36e1 Signed-off-by: Kaloyan Raev <kaloyan.r@zend.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* [CLI] Add option --millis / -m to debug-show-dir-cache commandMatthias Sohn2013-12-271-0/+1
| | | | | | | | | | | This is useful when comparing mtime displayed by $ jgit debug-show-dir-cache -m with mtime displayed by $ git ls-files --debug or $ stat "%m" Change-Id: Id133ebe6f6093a56a6a6645e1c5bb18752fb2fd0 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* archive: Prepend a specified prefix to all entry filenamesJonathan Nieder2013-12-171-0/+2
| | | | | | | | | | Common practice when distributing tarballs is to prefix all entries with a single directory name so when the tarball is extracted it all falls neatly into a single directory. Add a setPrefix() method to ArchiveCommand to support this. Change-Id: I16b2832ef98c30977f6b77b646728b83d93c196f Signed-off-by: Jonathan Nieder <jrn@google.com>
* CLI status should support --porcelainKaloyan Raev2013-12-041-0/+1
| | | | | | | | Add support for the machine-readable output format along with the existing default long format. Bug: 419968 Change-Id: I37fe5121b4c9dbae1106b1d18e9fdc134070a9dd Signed-off-by: Kaloyan Raev <kaloyan.r@zend.com>
* Manage CheckoutConflictException in pgmAxel Richard2013-11-291-0/+2
| | | | | Change-Id: I49f92bf7cafc80404f0bd07d62ff4b25e4db6e7c Signed-off-by: Axel Richard <axel.richard@obeo.fr> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* CLI fetch command should support --tagsKaloyan Raev2013-10-261-0/+2
| | | | | | | Bug: 419638 Change-Id: I1dc99fd38e678e091a1d141d741328f0dec1756a Signed-off-by: Kaloyan Raev <kaloyan.r@zend.com> Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
* Add describe command to JGit command line interfaceMatthias Sohn2013-10-111-0/+2
| | | | Change-Id: I1560fd2be417361b3d2df15a27618053031bd873 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* List all supported formats in archive command's helpMatthias Sohn2013-10-101-1/+1
| | | | Change-Id: I4bd271cb348914642069239853488f4960444746 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Add support for --version in JGit CLIKaloyan Raev2013-10-091-0/+1
| | | | | Bug: 419000 Change-Id: I43f5267182ea69d1f9abbff33136e0491c629071 Signed-off-by: Kaloyan Raev <kaloyan.r@zend.com>
* Add missing usage texts for JGit commandline commandsMatthias Sohn2013-09-091-1/+30
| | | | | | | Also update help text for the merge command now supporting recursive strategy as the default merge strategy. Change-Id: I07886fe875c407e2244f562c003bb9d04f398026 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Add --quiet flag to pgm fetch.Colby Ranger2013-08-051-0/+1
| | | | Change-Id: If141fdc5c181b3a618b7e286ad3c6957211d0afc
* Move ArchiveCommand into standard porcelain APIJonathan Nieder2013-05-241-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allow use of ArchiveCommand without depending on the jgit command-line tools. To avoid complicating the process of installing and upgrading JGit, this does not add a dependency by the org.eclipse.jgit bundle on commons-compress. Instead, the caller is responsible for registering any formats they want to use by calling ArchiveCommand.registerFormat. This patch puts functionality that requires an archiver into a separate org.eclipse.jgit.archive bundle for people who want it. One can use it by calling ArchiveCommand.registerFormat directly to register its formats or by relying on OSGi class loading to load org.eclipse.jgit.archive.FormatActivator, which takes care of registration automatically. Once the appropriate formats are registered, you can make a tar or zip from a git tree object as follows: ArchiveCommand cmd = git.archive(); try { cmd.setTree(tree).setFormat(fmt).setOutputStream(out).call(); } finally { cmd.release(); } Change-Id: I418e7e7d76422dc6f010d0b3b624d7bec3b20c6e
* Remove dependency by ArchiveCommand on archive formatsJonathan Nieder2013-05-241-0/+2
| | | | | | | | | | | | | | | | Provide static registerFormat and unregisterFormat methods to allow formats to register themselves without the ArchiveCommand code being aware of them. Register the basic "zip" and "tar" support at bundle activation time (and deregister them when unloading the bundle). For anyone using this code as an OSGi plugin it should continue to just work. The jgit program does not load org.eclipse.jgit.pgm as an OSGi bundle, so let the Archive command register the formats it uses explicitly with registerFormat. Change-Id: Id39c03ea6923d0aed8316ed7b6bd04d5ced570a7
* ArchiveCommand: make archive formats non-inner classesJonathan Nieder2013-05-231-0/+1
| | | | | | First step toward making ArchiveCommand itself format-agnostic. Change-Id: I3cff5fce28fa7a19e34f8291cfb5b62f16429713
* Move org.eclipse.jgit.pgm's resource bundle to internal packageMatthias Sohn2013-05-061-0/+0
| | | | | | | | Translatable texts aren't API and shouldn't require maintenance of @since tags to prevent API warnings. Change-Id: I228ff37f17c0e792a6bc188c463a0d19138e88ac Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>