Пример #1
0
    def _compute_local_hash(self):
        git_tree_in = check_output(
            ['git', 'log', '-n1', '--pretty=format:%T', 'HEAD', '--'],
            cwd=self._buck_dir).strip()

        with EmptyTempFile(prefix='buck-git-index',
                           dir=self._tmp_dir) as index_file:
            new_environ = os.environ.copy()
            new_environ['GIT_INDEX_FILE'] = index_file.name
            subprocess.check_call(
                ['git', 'read-tree', git_tree_in],
                cwd=self._buck_dir,
                env=new_environ)

            subprocess.check_call(
                ['git', 'add', '-u'],
                cwd=self._buck_dir,
                env=new_environ)

            git_tree_out = check_output(
                ['git', 'write-tree'],
                cwd=self._buck_dir,
                env=new_environ).strip()

        with EmptyTempFile(prefix='buck-version-uid-input',
                           dir=self._tmp_dir,
                           closed=False) as uid_input:
            subprocess.check_call(
                ['git', 'ls-tree', '--full-tree', git_tree_out],
                cwd=self._buck_dir,
                stdout=uid_input)
            return check_output(
                ['git', 'hash-object', uid_input.name],
                cwd=self._buck_dir).strip()
Пример #2
0
    def _compute_local_hash(self):
        git_tree_in = check_output(
            ['git', 'log', '-n1', '--pretty=format:%T', 'HEAD', '--'],
            cwd=self._buck_dir).strip()

        with EmptyTempFile(prefix='buck-git-index',
                           dir=self._tmp_dir) as index_file:
            new_environ = os.environ.copy()
            new_environ['GIT_INDEX_FILE'] = index_file.name
            subprocess.check_call(['git', 'read-tree', git_tree_in],
                                  cwd=self._buck_dir,
                                  env=new_environ)

            subprocess.check_call(['git', 'add', '-u'],
                                  cwd=self._buck_dir,
                                  env=new_environ)

            git_tree_out = check_output(['git', 'write-tree'],
                                        cwd=self._buck_dir,
                                        env=new_environ).strip()

        with EmptyTempFile(prefix='buck-version-uid-input',
                           dir=self._tmp_dir,
                           closed=False) as uid_input:
            subprocess.check_call(
                ['git', 'ls-tree', '--full-tree', git_tree_out],
                cwd=self._buck_dir,
                stdout=uid_input)
            return check_output(['git', 'hash-object', uid_input.name],
                                cwd=self._buck_dir).strip()
Пример #3
0
    def _get_git_commit_timestamp(self):
        if self._is_buck_repo_dirty_override or not self._is_git:
            return -1

        return check_output(
            ['git', 'log', '--pretty=format:%ct', '-1', 'HEAD', '--'],
            cwd=self._buck_dir).strip()
Пример #4
0
    def _get_git_revision(self):
        if not self._is_git:
            return 'N/A'

        output = check_output(['git', 'rev-parse', 'HEAD', '--'],
                              cwd=self._buck_dir)
        return output.splitlines()[0].strip()
Пример #5
0
    def _get_git_commit_timestamp(self):
        if self._is_buck_repo_dirty_override or not self._is_git:
            return -1

        return check_output(
            ['git', 'log', '--pretty=format:%ct', '-1', 'HEAD', '--'],
            cwd=self._buck_dir).strip()
Пример #6
0
    def _has_local_changes(self):
        if not self._is_git:
            return False

        output = check_output(
            ['git', 'ls-files', '-m'],
            cwd=self._buck_dir)
        return bool(output.strip())
Пример #7
0
    def _has_local_changes(self):
        if not self._is_git:
            return False

        output = check_output(
            ['git', 'ls-files', '-m'],
            cwd=self._buck_dir)
        return bool(output.strip())
Пример #8
0
    def _get_git_revision(self):
        if not self._is_git:
            return 'N/A'

        output = check_output(
            ['git', 'rev-parse', 'HEAD', '--'],
            cwd=self._buck_dir)
        return output.splitlines()[0].strip()
Пример #9
0
    def _is_dirty(self):
        if self._is_buck_repo_dirty_override:
            return self._is_buck_repo_dirty_override == "1"

        if not self._is_git:
            return False

        output = check_output(['git', 'status', '--porcelain'],
                              cwd=self._buck_dir)
        return bool(output.strip())
Пример #10
0
    def _is_dirty(self):
        if self._is_buck_repo_dirty_override:
            return self._is_buck_repo_dirty_override == "1"

        if not self._is_git:
            return False

        output = check_output(
            ['git', 'status', '--porcelain'],
            cwd=self._buck_dir)
        return bool(output.strip())
Пример #11
0
    def _has_local_changes(self):
        if not self._is_git:
            return False

        output = check_output(["git", "ls-files", "-m"], cwd=self._buck_dir)
        return bool(output.strip())