From 28132e774478bb632672ff04958b1cfc1a464da8 Mon Sep 17 00:00:00 2001 From: "B. Stack" Date: Sun, 3 Jul 2022 09:04:13 -0400 Subject: v102.0 rc1 --- bootstrap-without-vcs.patch | 125 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 bootstrap-without-vcs.patch (limited to 'bootstrap-without-vcs.patch') diff --git a/bootstrap-without-vcs.patch b/bootstrap-without-vcs.patch new file mode 100644 index 0000000..d213d70 --- /dev/null +++ b/bootstrap-without-vcs.patch @@ -0,0 +1,125 @@ +diff --git a/python/mozboot/mozboot/bootstrap.py b/python/mozboot/mozboot/bootstrap.py +index 0c5ecbf..d9a6d9d 100644 +--- a/python/mozboot/mozboot/bootstrap.py ++++ b/python/mozboot/mozboot/bootstrap.py +@@ -550,10 +550,7 @@ def current_firefox_checkout(env, hg: Optional[Path] = None): + break + path = path.parent + +- raise UserError( +- "Could not identify the root directory of your checkout! " +- "Are you running `mach bootstrap` in an hg or git clone?" +- ) ++ return ("local", Path.cwd()) + + + def update_git_tools(git: Optional[Path], root_state_dir: Path): +diff --git a/python/mozversioncontrol/mozversioncontrol/__init__.py b/python/mozversioncontrol/mozversioncontrol/__init__.py +index dd31f53..6f0087a 100644 +--- a/python/mozversioncontrol/mozversioncontrol/__init__.py ++++ b/python/mozversioncontrol/mozversioncontrol/__init__.py +@@ -684,6 +684,29 @@ class GitRepository(Repository): + self._run("config", name, value) + + ++class LocalRepository(Repository): ++ ++ def __init__(self, path): ++ super(LocalRepository, self).__init__(path, tool="true") ++ ++ @property ++ def head_ref(self): ++ return "" ++ ++ def get_outgoing_files(self): ++ return [] ++ ++ def get_changed_files(self): ++ return [] ++ ++ def get_tracked_files_finder(self): ++ files = [os.path.relpath(os.path.join(dp, f), self.path).replace("\\","/") for dp, dn, fn in os.walk(self.path) for f in fn] ++ files.sort() ++ return FileListFinder(files) ++ ++ ++ ++ + def get_repository_object(path: Optional[Union[str, Path]], hg="hg", git="git"): + """Get a repository object for the repository at `path`. + If `path` is not a known VCS repository, raise an exception. +@@ -697,7 +720,7 @@ def get_repository_object(path: Optional[Union[str, Path]], hg="hg", git="git"): + elif (path / ".git").exists(): + return GitRepository(path, git=git) + else: +- raise InvalidRepoPath(f"Unknown VCS, or not a source checkout: {path}") ++ return LocalRepository(path) + + + def get_repository_from_build_config(config): +@@ -721,6 +744,8 @@ def get_repository_from_build_config(config): + return HgRepository(Path(config.topsrcdir), hg=config.substs["HG"]) + elif flavor == "git": + return GitRepository(Path(config.topsrcdir), git=config.substs["GIT"]) ++ elif flavor == "local": ++ return LocalRepository(config.topsrcdir) + else: + raise MissingVCSInfo("unknown VCS_CHECKOUT_TYPE value: %s" % flavor) + +diff --git a/third_party/python/taskcluster_taskgraph/taskgraph/util/vcs.py b/third_party/python/taskcluster_taskgraph/taskgraph/util/vcs.py +index 016578b..7525139 100644 +--- a/third_party/python/taskcluster_taskgraph/taskgraph/util/vcs.py ++++ b/third_party/python/taskcluster_taskgraph/taskgraph/util/vcs.py +@@ -168,6 +168,43 @@ class GitRepository(Repository): + self.run("checkout", ref) + + ++class LocalRepository(Repository): ++ tool = "true" ++ ++ @property ++ def head_ref(self): ++ return "" ++ ++ def get_outgoing_files(self): ++ return [] ++ ++ def get_changed_files(self): ++ return [] ++ ++ def base_ref(self): ++ raise Exception("Unimplemented") ++ ++ def branch(self): ++ raise Exception("Unimplemented") ++ ++ def get_commit_message(self): ++ raise Exception("Unimplemented") ++ ++ def get_url(self): ++ return "" ++ ++ def update(self): ++ raise Exception("Unimplemented") ++ ++ def working_directory_clean(self): ++ raise Exception("Unimplemented") ++ ++ def get_tracked_files_finder(self): ++ files = [os.path.relpath(os.path.join(dp, f), self.path).replace("\\","/") for dp, dn, fn in os.walk(self.path) for f in fn] ++ files.sort() ++ return FileListFinder(files) ++ ++ + def get_repository(path): + """Get a repository object for the repository at `path`. + If `path` is not a known VCS repository, raise an exception. +@@ -178,7 +215,7 @@ def get_repository(path): + elif os.path.exists(os.path.join(path, ".git")): + return GitRepository(path) + +- raise RuntimeError("Current directory is neither a git or hg repository") ++ return LocalRepository(path) + + + def find_hg_revision_push_info(repository, revision): -- cgit