This reporitory is a clone of JGit with patches for its usage in SCM-Manager. To distinguish the patched versions from the original JGit versions, the patches
- change the group id to
sonia.jgit
- extend the versions with
-scm1
,-scm2
and so on - modify the distribution to use the Nexus of the SCM-Manager project
The patches can be found on specific branches, for example
patch/5.11.1.202105131744-r-scm3
for the third patch release of version
5.11.1.202105131744-r
.
If you are looking for the original sources of JGit, you can find them here.
This mirror is updated sporadically from the original sources. To get the patched version before JGit 5.11.x, you have to use the old patch repository and apply these patches manually.
To update this repository for a new release, you should
- add the original repository as a new remote (if this has not been done, already):
git remote add eclipse https://git.eclipse.org/r/jgit/jgit
- fetch the original sources:
git fetch eclipse
- push new tags to this repository:
git push --tags origin
To apply new patches to JGit and therefore prepare a new patch release, you should differentiate between updates for existing patch releases and a new patch release for a previously not adapted JGit release.
Do not take the following "instructions" too literally. There is no "one-fits-all" process for patches and you may need to find an individual way!
If you want to add a patch to, let's say version 5.11.1.202105131744-r-scm3
, you should
- Check out the latest patch for your version:
git checkout patch/5.11.1.202105131744-r-scm3
- Implement your changes and commit them.
- Increase the patch number in the versions, either by using a global search-and-replace
function in your favourite editor or by using
sed
and create a separate commit for this:
sed -i "s/5.11.1.202105131744-r-scm3/5.11.1.202105131744-r-scm4/g" `find . -name pom.xml
git commit -m "Increase patch version to 5.11.1.202105131744-r-scm4"
To apply all patches to a JGit release, for which there is no patch release, yet, you should:
- (Interactively) rebase or manually cherry pick all patch commits from the previous patch release
and skip all updates of the pom versions. Make sure to carefully solve all potential conflicts.
For example to apply all patches of
5.11.1.202105131744-r-scm3
to the JGit version6.2.0.202206071550-r
, you could do this (and please mind, that this is just an example and may not be approriate for versions to come):
git checkout patch/5.13.0.202109080827-r-scm1
git branch -b patch/v6.2.0.202206071550-r-scm1
git rebase -i v6.2.0.202206071550-r
Skip commit 1d93777b
in the rebase:
pick 436f97d7e patch groupid
pick 7e6c5e7a4 patch disable-japicmp
pick 094c603ee # HG changeset patch # Parent abb29c77b41860d547a5dcfb4ff7ce5f469a9063
pick 59710de92 # HG changeset patch # Parent ef58043a2276cdbcdc2e654b63a9d998a82ca56f
pick d50c603ee # HG changeset patch # Parent 6e6ca170b5edd81ac08304556ba6416ae43fbbb1
pick 1fb1a2efc # HG changeset patch # Parent faf9a9eeae067a23ac354b5265f2db2fc98d5b72
pick 87a3db529 patch pack-parser-release
pick e19b3ad32 patch lfs-smudge-connection-factory
pick 7e7652baf patch lfs-smudge-connection-factory
- Create a new commit to modify the version in the pom files:
sed -i "s/6.2.0.202206071550-r/6.2.0.202206071550-r-scm1/g" `find . -name pom.xml
git commit -am "Increase patch version to 6.2.0.202206071550-r-scm1"
To deploy a new patched version to the SCM-Manager Nexus, use
mvn deploy
By convention, the master
branch should point to a commit with the changes for this
README.md
file based on the last released patch version.