aboutsummaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit.pgm/resources
Commit message (Collapse)AuthorAgeFilesLines
* diff: add option metaVar for --src-prefix and --dst-prefixAndre Bossert2019-03-041-0/+1
| | | | | | | Fixes exception if using "jgit diff --help". Bug: 544735 Change-Id: I694ff3103da4bc199dd03c40962c5be191eddcd1 Signed-off-by: Andre Bossert <andre.bossert@siemens.com>
* pgm: Externalize error messageMatthias Sohn2019-01-211-0/+1
| | | | Change-Id: Id9e33104c9681dc9a57674c1648c994a503fa6b8 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* pgm: Handle exceptions in Config commandMatthias Sohn2019-01-201-0/+1
| | | | | | | | This avoids we show a stacktrace on the console by default when this type of exception is thrown during the run method is executed. Also externalize error message. Change-Id: I909dc77385a672d8298053b12683c0cbbf9f2aa2 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* pgm: Fix too wide lines in Commit.run()Matthias Sohn2019-01-201-1/+1
| | | | Change-Id: I695d1771b808217b0fbde29805e53a819d8c3303 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Fix "jgit checkout -f" to overwrite dirty worktree filesChristian Halstrick2019-01-081-1/+2
| | | | | | | | | | | | | | | | | CheckoutCommand had a setForce() method. But this didn't correspond to native git's 'git checkout -f' option. Deprecate the old setForce() method and move its implementation to a new method setForceRefUpdate() and use it to implement the -B option in the CLI class Checkout. Add a setForced() method and use it to fix the associated '-f' option of the CLI Checkout class to behave like native git's 'git checkout -f' which overwrites dirty worktree files during checkout. This is still not fully matching native git's behavior: updating additionally dirty index entries is not done yet. Bug: 530771 Change-Id: I776b78eb623b6ea0aca42f681788f2e4b1667f15 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Add --ssh option to command-line commandsThomas Wolf2018-11-141-0/+1
| | | | | | | | | | | | | | | Enables using the new ssh client based on Apache MINA sshd instead of the old JSch client. The default is still JSch, so unless the command is invoked with --ssh apache, there's no change. I prefer this over some fiddling with the GIT_SSH environment variable since that variable is handled in the JGit core bundle, which should remain free of any dependency to org.eclipse.jgit.ssh.apache to avoid problems in Gerrit or other JGit users that may use a different Apache MINA sshd version. Bug: 520927 Change-Id: I8460759c7113ef7887520fb0d297aa312200c69f Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* CLIText: Fix typo: remotes's -> remote'sDavid Pursehouse2018-10-291-1/+1
| | | | | Change-Id: I28494ffff6cd8042ef5f3de7da976d4a1569fe10 Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
* CLIText: Fix typo: 'amd' -> 'and'David Pursehouse2018-10-291-1/+1
| | | | | Change-Id: Ifa48c35f413bd1a92946ea54c1c7adc0d53ebc78 Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
* Add ls-files CLI commandMatthias Sohn2018-08-281-0/+1
| | | | | | Implement the basic functionality and support the option --help (-h). Change-Id: Ibcdf0c958d0f93b7415d4e591b1455ccba5d95f7 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Implement --force option in FetchCommand and CLI fetch commandMatthias Sohn2018-03-131-0/+1
| | | | Change-Id: I42cdb57b8fb54ce466d1958391f12f911045327f Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Add missing help text for rev-parse's --verify optionMatthias Sohn2017-11-191-0/+3
| | | | Change-Id: I3345f52e0c2a555e4c5edb7effe4be4af4cca10a Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* UntrackedFilesHandler: Fix non-localized stringDavid Pursehouse2017-09-061-0/+1
| | | | | Change-Id: Ida7b9ddc991515ab233763f2cb985853c9143a3c Signed-off-by: David Pursehouse <david.pursehouse@gmail.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Rename extensions.refsStorage to refStorageShawn Pearce2017-08-111-1/+1
| | | | | | | This matches the proposal that has been discussed at length on git-core mailing list and seems to be the accepted convention. Change-Id: I9f6ab15144826893d1e2a4b48a2d657d6dd445ec
* Add --match option for `jgit describe` to CLIOliver Lockwood2017-06-221-0/+2
| | | | | | | | | This adds --match option for glob(7) matchers on git tags to jgit describe in CLI. Bug: 518377 Change-Id: I745988d565dd4391e8b3e5a91bbfbae575333819 Signed-off-by: Oliver Lockwood <oliver.lockwood@cantab.net>
* Fetch: Add --recurse-submodules and --no-recurse-submodules optionsDavid Pursehouse2017-06-111-0/+3
| | | | | | | | | | Add options to control recursion into submodules on fetch. Add a callback interface on FetchCommand, to allow Fetch to display an update "Fetching submodule XYZ" for each submodule. Change-Id: Id805044b57289ee0f384b434aba1dbd2fd317e5b Signed-off-by: David Pursehouse <david.pursehouse@gmail.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Fix capitalization of command help summariesDavid Pursehouse2017-06-111-2/+2
| | | | | Change-Id: Ibb245fdca5470efa6340af019b452dd17b01e9c2 Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
* Clone: add --recurse-submodules optionDavid Pursehouse2017-04-271-0/+3
| | | | | | | | | | Add the --recurse-submodules option on the command, which causes submodules to also be initialized and updated. Add a callback interface on CloneCommand and SubmoduleUpdateCommand to them to provide progress feedback for clone operations. Change-Id: I41b1668bc0d0bdfa46a9a89882c9657ea3063fc1 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* gc: Add options to preserve and prune old pack filesJames Melvin2017-01-191-0/+2
| | | | | | | | | | | | | | | | | | | The new --preserve-oldpacks option moves old pack files into the preserved subdirectory instead of deleting them after repacking. The new --prune-preserved option prunes old pack files from the preserved subdirectory after repacking, but before potentially moving the latest old packfiles to this subdirectory. These options are designed to prevent stale file handle exceptions during git operations which can happen on users of NFS repos when repacking is done on them. The strategy is to preserve old pack files around until the next repack with the hopes that they will become unreferenced by then and not cause any exceptions to running processes when they are finally deleted (pruned). Change-Id: If3f729f0d9ce920ee2c3e6acdde46f2068be61d2 Signed-off-by: James Melvin <jmelvin@codeaurora.org>
* 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