Source:
<code>protected void run() throws Exception { PackConfig packConfig = new PackConfig(); StoredConfig cfg; if (configFile == null) { cfg = getUserConfig(); } else { if (!configFile.exists()) { throw die(MessageFormat.format( CLIText.get().configFileNotFound, configFile.getAbsolutePath())); } cfg = new <START> FileBasedConfig(getUserConfig(), configFile, <END> FS.DETECTED); } cfg.load(); new WindowCacheConfig().fromConfig(cfg).install(); packConfig.fromConfig(cfg); int threads = packConfig.getThreads(); if (threads <= 0) threads = Runtime.getRuntime().availableProcessors(); if (1 < threads) packConfig.setExecutor(Executors.newFixedThreadPool(threads)); final FileResolver<DaemonClient> resolver = new FileResolver<>(); for (File f : directory) { outw.println(MessageFormat.format(CLIText.get().exporting, f.getAbsolutePath())); resolver.exportDirectory(f); } resolver.setExportAll(exportAll); final org.eclipse.jgit.transport.Daemon d; d = new org.eclipse.jgit.transport.Daemon( host != null ? new InetSocketAddress(host, port) : new InetSocketAddress(port)); d.setPackConfig(packConfig); d.setRepositoryResolver(resolver); if (0 <= timeout) d.setTimeout(timeout); for (String n : enable) service(d, n).setEnabled(true); for (String n : disable) service(d, n).setEnabled(false); for (String n : canOverride) service(d, n).setOverridable(true); for (String n : forbidOverride) service(d, n).setOverridable(false); if (ketchServerType == KetchServerType.LEADER) { startKetchLeader(d); } d.start(); outw.println(MessageFormat.format(CLIText.get().listeningOn, d.getAddress())); }</code><technical_language>I a user explicit configfile for daemon command default ones. I in case user explicitly specifies a configfile for daemon process. explicitly configfile source for config data explicitly config file additional config file inheriting unspecified options global system (as is done in this proposal). I for option explicitly configfile source inherit user system config</technical_language>

Target:
protected void run() throws Exception { PackConfig packConfig = new PackConfig(); StoredConfig cfg; if (configFile == null) { cfg = getUserConfig(); } else { if (!configFile.exists()) { throw die(MessageFormat.format( CLIText.get().configFileNotFound, configFile.getAbsolutePath())); } cfg = new FileBasedConfig(configFile, FS.DETECTED); } cfg.load(); new WindowCacheConfig().fromConfig(cfg).install(); packConfig.fromConfig(cfg); int threads = packConfig.getThreads(); if (threads <= 0) threads = Runtime.getRuntime().availableProcessors(); if (1 < threads) packConfig.setExecutor(Executors.newFixedThreadPool(threads)); final FileResolver<DaemonClient> resolver = new FileResolver<>(); for (File f : directory) { outw.println(MessageFormat.format(CLIText.get().exporting, f.getAbsolutePath())); resolver.exportDirectory(f); } resolver.setExportAll(exportAll); final org.eclipse.jgit.transport.Daemon d; d = new org.eclipse.jgit.transport.Daemon( host != null ? new InetSocketAddress(host, port) : new InetSocketAddress(port)); d.setPackConfig(packConfig); d.setRepositoryResolver(resolver); if (0 <= timeout) d.setTimeout(timeout); for (String n : enable) service(d, n).setEnabled(true); for (String n : disable) service(d, n).setEnabled(false); for (String n : canOverride) service(d, n).setOverridable(true); for (String n : forbidOverride) service(d, n).setOverridable(false); if (ketchServerType == KetchServerType.LEADER) { startKetchLeader(d); } d.start(); outw.println(MessageFormat.format(CLIText.get().listeningOn, d.getAddress())); }