diff mercurial/cmdutil.py @ 4556:30bc57094bfc

dispatch: move findrepo to cmdutil
author Matt Mackall <mpm@selenic.com>
date Mon, 11 Jun 2007 21:09:24 -0500
parents 1843d31bfdbf
children 050fa240db9c
line wrap: on
line diff
--- a/mercurial/cmdutil.py
+++ b/mercurial/cmdutil.py
@@ -9,7 +9,7 @@ from node import *
 from i18n import _
 import os, sys, mdiff, bdiff, util, templater, patch, commands
 import atexit, signal, pdb, hg, lock, fancyopts, traceback
-import socket, revlog, version, extensions, errno, localrepo
+import socket, revlog, version, extensions, errno
 
 revrangesep = ':'
 
@@ -186,6 +186,15 @@ def findcmd(ui, cmd):
 
     raise UnknownCommand(cmd)
 
+def findrepo():
+    p = os.getcwd()
+    while not os.path.isdir(os.path.join(p, ".hg")):
+        oldp, p = p, os.path.dirname(p)
+        if p == oldp:
+            return None
+
+    return p
+
 def parse(ui, args):
     options = {}
     cmdoptions = {}
@@ -259,7 +268,7 @@ def dispatch(ui, args):
     # this will trigger its extensions to load
     path = earlygetopt(["-R", "--repository"], args)
     if not path:
-        path = localrepo.findrepo() or ""
+        path = findrepo() or ""
     if path:
         try:
             lui = commands.ui.ui(parentui=ui)