Esempio n. 1
0
 def _get_data_text(self, h):
     all_branches_text = runext.run_get_cmd(["git", "branch", "-vv"],
                                            default="")
     h.update(all_branches_text.encode())
     merged_branches_text = runext.run_get_cmd(
         ["git", "branch", "--merged"], default="")
     h.update(merged_branches_text.encode())
     return (all_branches_text, merged_branches_text)
Esempio n. 2
0
 def get_author_name_and_email():
     import email.utils
     email_addr = runext.run_get_cmd(["git", "config", "user.email"],
                                     default=None)
     if not email_addr:
         email_addr = os.environ.get("GIT_AUTHOR_EMAIL", None)
     if not email_addr:
         return None
     name = runext.run_get_cmd(["git", "config", "user.name"], default=None)
     if not name:
         name = utils.get_first_in_envar(
             ["GIT_AUTHOR_NAME", "LOGNAME", "GECOS"], default=_("unknown"))
     return email.utils.formataddr((name, email_addr))
Esempio n. 3
0
def index_is_empty():
    stdout = runext.run_get_cmd(
        ["git", "status", "--porcelain", "--untracked-files=no"])
    for line in stdout.splitlines():
        if line[0] != " ":
            return False
    return True
Esempio n. 4
0
 def copy_clean_version_to(filepath, target_name):
     contents = runext.run_get_cmd(
         ["git", "cat-file", "blob", "HEAD:{}".format(filepath)])
     if contents:
         utils.ensure_file_dir_exists(target_name)
         with open(target_name, "w") as fobj:
             fobj.write(contents)
Esempio n. 5
0
 def get_revision(filepath=None):
     cmd = [
         "git",
         "show",
     ]
     if filepath:
         cmd.append(filepath)
     return runext.run_get_cmd(cmd).stdout.splitlines()[0][7:]
Esempio n. 6
0
 def __init__(self):
     Gtk.ComboBoxText.__init__(self)
     count = 0
     for line in runext.run_get_cmd(["git", "remote"],
                                    default="").splitlines():
         self.append_text(line)
         count += 1
     if count == 1:
         self.set_active(0)
Esempio n. 7
0
 def get_files_with_uncommitted_changes(files=None):
     cmd = [
         "git",
         "status",
         "--porcelain",
         "--untracked-files=no",
     ]
     if files:
         cmd += files
     return [line[3:] for line in runext.run_get_cmd(cmd).splitlines()]
Esempio n. 8
0
 def __init__(self):
     Gtk.ComboBoxText.__init__(self)
     current_branch_index = None
     for i, line in enumerate(
             runext.run_get_cmd(["git", "branch"],
                                default="").splitlines()):
         if line.startswith("*"):
             current_branch_index = i
         self.append_text(line[2:])
     self.set_active(current_branch_index)
Esempio n. 9
0
 def _get_diff_text(self):
     # TODO: think about making -M a selectable option
     cmd = ["git", "diff", "--no-ext-diff", "-M"]
     if self.mode_button["git diff --staged"].get_active():
         cmd.append("--staged")
     elif self.mode_button["git diff HEAD"].get_active():
         cmd.append("HEAD")
     try:
         return runext.run_get_cmd(cmd, do_rstrip=False)
     except CmdFailure as failure:
         dialogue.main_window.report_failure(failure)
         return failure.result.stdout
Esempio n. 10
0
 def _extract_file_status_snapshot(file_data_text):
     related_file_path_data = []
     fsd = {
         file_path: (status, related_file_data)
         for file_path, status, related_file_data in
         iter_git_file_data_text(file_data_text, related_file_path_data)
     }
     for file_path, related_file_path in related_file_path_data:
         data = fsd.get(related_file_path, None)
         if data is not None:
             # don't overwrite git's opinion on related file data if it had one
             if data[1] is not None: continue
             status = data[0]
         else:
             stdout = runext.run_get_cmd(
                 ["git", "status", "--porcelain", "--", related_file_path],
                 default="")
             status = stdout[:2] if stdout else None
         fsd[related_file_path] = (status,
                                   fsdb.RFD(path=file_path, relation="<-"))
     return fsdb.Snapshot(fsd)
Esempio n. 11
0
 def get_stash_diff(stash=None):
     return runext.run_get_cmd(["git", "stash", "show", "-p"] +
                               runext.OPTNL_ARG(stash),
                               default="",
                               do_rstrip=False)
Esempio n. 12
0
 def get_commit_template():
     file_path = runext.run_get_cmd(["git", "config", "commit.template"],
                                    default="")
     return open(file_path).read() if os.path.exists(file_path) else ""
Esempio n. 13
0
 def get_signing_key():
     return runext.run_get_cmd(["git", "config", "user.signingkey"],
                               default="")
Esempio n. 14
0
 def _get_data_text(self, h):
     text = runext.run_get_cmd(
         ["git", "log", "--pretty=format:%H%n%h%n%an%n%cr%n%s"], default="")
     h.update(text.encode())
     return text
Esempio n. 15
0
 def get_clean_contents(file_path):
     return runext.run_get_cmd(
         ["git", "cat-file", "blob", "HEAD:{}".format(file_path)],
         do_rstrip=False,
         default=None,
         decode_stdout=False)
Esempio n. 16
0
 def _get_file_data_text(self, h):
     file_data_text = runext.run_get_cmd(
         ["git", "status", "--porcelain", "--ignored", "--untracked=all"])
     h.update(file_data_text.encode())
     return file_data_text
Esempio n. 17
0
 def get_diff(*args):
     return runext.run_get_cmd(["git", "diff", "--no-ext-diff"] +
                               list(args),
                               do_rstrip=False)
Esempio n. 18
0
 def _get_patch_data_text(self, h):
     patch_status_text = runext.run_get_cmd(
         ["git", "status", "--porcelain", "--untracked-files=no"],
         default="")
     h.update(patch_status_text.encode())
     return (patch_status_text)
Esempio n. 19
0
 def get_file_status_digest():
     stdout = runext.run_get_cmd(
         ["git", "status", "--porcelain", "--ignored", "--untracked=all"],
         default=None)
     return None if stdout is None else hashlib.sha1(stdout).digest()
Esempio n. 20
0
 def _get_data_text(self, h):
     text = runext.run_get_cmd(["git", "remote", "-v"], default="")
     h.update(text.encode())
     return text
Esempio n. 21
0
 def _get_data_text(self, h):
     text = runext.run_get_cmd(["git", "stash", "list"], default="")
     h.update(text.encode())
     return text