comparison src/org/tmatesoft/hg/internal/Internals.java @ 579:36e36b926747

Provide means to read user-specific configuration, with no specific repository selected
author Artem Tikhomirov <tikhomirov.artem@gmail.com>
date Wed, 17 Apr 2013 16:06:10 +0200
parents 6ca3d0c5b4bc
children ed243b668502
comparison
equal deleted inserted replaced
578:f97e81d13190 579:36e36b926747
291 } 291 }
292 return null; 292 return null;
293 } 293 }
294 294
295 /** 295 /**
296 * User-specific configuration, from system-wide and user home locations, without any repository-specific data.
297 *
296 * @see http://www.selenic.com/mercurial/hgrc.5.html 298 * @see http://www.selenic.com/mercurial/hgrc.5.html
297 */ 299 */
298 public ConfigFile readConfiguration() throws IOException { 300 public static ConfigFile readConfiguration(SessionContext sessionCtx) throws IOException {
299 SessionContext sessionCtx = repo.getSessionContext();
300 ConfigFile configFile = new ConfigFile(sessionCtx); 301 ConfigFile configFile = new ConfigFile(sessionCtx);
301 File hgInstallRoot = findHgInstallRoot(sessionCtx); // may be null 302 File hgInstallRoot = findHgInstallRoot(sessionCtx); // may be null
302 // 303 //
303 if (runningOnWindows()) { 304 if (runningOnWindows()) {
304 if (hgInstallRoot != null) { 305 if (hgInstallRoot != null) {
333 } 334 }
334 } 335 }
335 configFile.addLocation(new File("/etc/mercurial/hgrc")); 336 configFile.addLocation(new File("/etc/mercurial/hgrc"));
336 configFile.addLocation(new File(System.getenv("HOME"), ".hgrc")); 337 configFile.addLocation(new File(System.getenv("HOME"), ".hgrc"));
337 } 338 }
339 return configFile;
340 }
341
342 /**
343 * Repository-specific configuration
344 * @see http://www.selenic.com/mercurial/hgrc.5.html
345 */
346 public ConfigFile readConfiguration() throws IOException {
347 ConfigFile configFile = readConfiguration(repo.getSessionContext());
338 // last one, overrides anything else 348 // last one, overrides anything else
339 // <repo>/.hg/hgrc 349 // <repo>/.hg/hgrc
340 configFile.addLocation(getFileFromRepoDir("hgrc")); 350 configFile.addLocation(getFileFromRepoDir("hgrc"));
341 return configFile; 351 return configFile;
342 } 352 }
353
343 354
344 private static List<File> getWindowsConfigFilesPerInstall(File hgInstallDir) { 355 private static List<File> getWindowsConfigFilesPerInstall(File hgInstallDir) {
345 File f = new File(hgInstallDir, "Mercurial.ini"); 356 File f = new File(hgInstallDir, "Mercurial.ini");
346 if (f.exists()) { 357 if (f.exists()) {
347 return Collections.singletonList(f); 358 return Collections.singletonList(f);