1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
import os
from mozbuild.base import MozbuildObject
from mozversioncontrol import get_repository_object
from tryselect.cli import BaseTryParser
from .again import run as again_run
from .fuzzy import run as fuzzy_run
here = os.path.abspath(os.path.dirname(__file__))
build = MozbuildObject.from_environment(cwd=here)
class CompareParser(BaseTryParser):
name = "compare"
arguments = [
[
["-cc", "--compare-commit"],
{
"default": None,
"help": "The commit that you want to compare your current revision with",
},
],
]
common_groups = ["task"]
task_configs = [
"rebuild",
]
def get_revisions_to_run(vcs, compare_commit):
if compare_commit is None:
compare_commit = vcs.base_ref
if vcs.branch:
current_revision_ref = vcs.branch
else:
current_revision_ref = vcs.head_ref
return compare_commit, current_revision_ref
def run(compare_commit=None, **kwargs):
vcs = get_repository_object(build.topsrcdir)
compare_commit, current_revision_ref = CompareParser.get_revisions_to_run(
vcs, compare_commit
)
try:
fuzzy_run(**kwargs)
vcs.update(compare_commit)
again_run()
finally:
vcs.update(current_revision_ref)
|