diff src/org/tmatesoft/hg/repo/HgLookup.java @ 492:e4eaa23e3442

Leave path as close as possible to one supplied by user. No need to keep it as canonical
author Artem Tikhomirov <tikhomirov.artem@gmail.com>
date Thu, 18 Oct 2012 16:27:32 +0200
parents e31e85cf4d4c
children 0bd2d0441d8f
line wrap: on
line diff
--- a/src/org/tmatesoft/hg/repo/HgLookup.java	Tue Oct 16 21:07:27 2012 +0200
+++ b/src/org/tmatesoft/hg/repo/HgLookup.java	Thu Oct 18 16:27:32 2012 +0200
@@ -19,7 +19,6 @@
 import static org.tmatesoft.hg.util.LogFacility.Severity.Warn;
 
 import java.io.File;
-import java.io.IOException;
 import java.net.MalformedURLException;
 import java.net.URL;
 
@@ -58,28 +57,22 @@
 
 	// look up in specified location and above
 	public HgRepository detect(File location) throws HgRepositoryNotFoundException {
-		try {
-			File dir = location.getAbsoluteFile();
-			File repository;
-			do {
-				repository = new File(dir, ".hg");
-				if (repository.exists() && repository.isDirectory()) {
-					break;
-				}
-				repository = null;
-				dir = dir.getParentFile();
-				
-			} while(dir != null);
-			if (repository == null) {
-				throw new HgRepositoryNotFoundException(String.format("Can't locate .hg/ directory of Mercurial repository in %s nor in parent dirs", location)).setLocation(location.getPath());
+		File dir = location.getAbsoluteFile();
+		File repository;
+		do {
+			repository = new File(dir, ".hg");
+			if (repository.exists() && repository.isDirectory()) {
+				break;
 			}
-			String repoPath = repository.getParentFile().getCanonicalPath();
-			return new HgRepository(getContext(), repoPath, repository);
-		} catch (IOException ex) {
-			HgRepositoryNotFoundException t = new HgRepositoryNotFoundException("Failed to access repository");
-			t.setLocation(location.getPath()).initCause(ex);
-			throw t;
+			repository = null;
+			dir = dir.getParentFile();
+			
+		} while(dir != null);
+		if (repository == null) {
+			throw new HgRepositoryNotFoundException(String.format("Can't locate .hg/ directory of Mercurial repository in %s nor in parent dirs", location)).setLocation(location.getPath());
 		}
+		String repoPath = repository.getParentFile().getAbsolutePath();
+		return new HgRepository(getContext(), repoPath, repository);
 	}
 	
 	public HgBundle loadBundle(File location) throws HgRepositoryNotFoundException {