aboutsummaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit
diff options
context:
space:
mode:
authorMatthias Sohn <matthias.sohn@sap.com>2021-01-25 02:43:18 +0100
committerMatthias Sohn <matthias.sohn@sap.com>2021-02-22 23:11:45 +0100
commit927deed5a569bd09ad5d23e815bcc3d68d14de91 (patch)
treed6facb1e1a66895d900da5ca665971dc436a5a1d /org.eclipse.jgit
parentcb8924a80d9e07182a056c01acd418a6beddcc0f (diff)
downloadjgit-927deed5a569bd09ad5d23e815bcc3d68d14de91.tar.gz
jgit-927deed5a569bd09ad5d23e815bcc3d68d14de91.zip
init: add config option to set default for the initial branch name
We introduced the option --initial-branch=<branch-name> to allow initializing a new repository with a different initial branch. To allow users to override the initial branch name more permanently (i.e. without having to specify the name manually for each 'git init'), introduce the 'init.defaultBranch' option. This option was added to git in 2.28.0. See https://git-scm.com/docs/git-config#Documentation/git-config.txt-initdefaultBranch Bug: 564794 Change-Id: I679b14057a54cd3d19e44460c4a5bd3a368ec848 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
Diffstat (limited to 'org.eclipse.jgit')
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/api/InitCommand.java13
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/lib/ConfigConstants.java13
2 files changed, 23 insertions, 3 deletions
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/InitCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/InitCommand.java
index b2f7354ed9..240290f4f9 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/api/InitCommand.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/InitCommand.java
@@ -17,11 +17,14 @@ import java.util.concurrent.Callable;
import org.eclipse.jgit.api.errors.GitAPIException;
import org.eclipse.jgit.api.errors.InvalidRefNameException;
import org.eclipse.jgit.api.errors.JGitInternalException;
+import org.eclipse.jgit.errors.ConfigInvalidException;
import org.eclipse.jgit.internal.JGitText;
+import org.eclipse.jgit.lib.ConfigConstants;
import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.lib.RepositoryBuilder;
import org.eclipse.jgit.util.FS;
+import org.eclipse.jgit.util.StringUtils;
import org.eclipse.jgit.util.SystemReader;
/**
@@ -39,7 +42,7 @@ public class InitCommand implements Callable<Git> {
private FS fs;
- private String initialBranch = Constants.MASTER;
+ private String initialBranch;
/**
* {@inheritDoc}
@@ -90,12 +93,16 @@ public class InitCommand implements Callable<Git> {
builder.setWorkTree(new File(dStr));
}
}
- builder.setInitialBranch(initialBranch);
+ builder.setInitialBranch(StringUtils.isEmptyOrNull(initialBranch)
+ ? SystemReader.getInstance().getUserConfig().getString(
+ ConfigConstants.CONFIG_INIT_SECTION, null,
+ ConfigConstants.CONFIG_KEY_DEFAULT_BRANCH)
+ : initialBranch);
Repository repository = builder.build();
if (!repository.getObjectDatabase().exists())
repository.create(bare);
return new Git(repository, true);
- } catch (IOException e) {
+ } catch (IOException | ConfigInvalidException e) {
throw new JGitInternalException(e.getMessage(), e);
}
}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/ConfigConstants.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/ConfigConstants.java
index 7381c905b0..03c1ef904c 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/ConfigConstants.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/ConfigConstants.java
@@ -715,4 +715,17 @@ public final class ConfigConstants {
*/
public static final String CONFIG_KEY_VERSION = "version";
+ /**
+ * The "init" section
+ *
+ * @since 5.11
+ */
+ public static final String CONFIG_INIT_SECTION = "init";
+
+ /**
+ * The "defaultBranch" key
+ *
+ * @since 5.11
+ */
+ public static final String CONFIG_KEY_DEFAULT_BRANCH = "defaultbranch";
}