コード例 #1
0
ファイル: test_porcelain.py プロジェクト: paddie/dulwich
 def test_new(self):
     porcelain.remote_add(
         self.repo, 'jelmer', 'git://jelmer.uk/code/dulwich')
     c = self.repo.get_config()
     self.assertEqual(
         c.get((b'remote', b'jelmer'), b'url'),
         b'git://jelmer.uk/code/dulwich')
コード例 #2
0
def process(input):
    gh_username = setup.get_gh_username()
    gh_password = setup.decrypt_password()
    gh = github.Github(gh_username, gh_password)
    click.echo(chalk.blue('you are in git module'))
    click.echo('input = %s' % input)
    CONFIG_FILE_PATH = config_file_paths['CONFIG_FILE_PATH']
    CONFIG_FOLDER_PATH = get_folder_path_from_file_path(CONFIG_FILE_PATH)
    repo = porcelain.init(CONFIG_FOLDER_PATH)
    porcelain.add(repo)
    porcelain.commit(repo, "A sample commit")
    porcelain.remote_add(repo, ".yoda", "https://github.com/manparvesh/.yoda")
    porcelain.push(repo, "https://github.com/manparvesh/.yoda")
コード例 #3
0
 def test_exists(self):
     porcelain.remote_add(self.repo, 'jelmer',
                          'git://jelmer.uk/code/dulwich')
     self.assertRaises(porcelain.RemoteExists, porcelain.remote_add,
                       self.repo, 'jelmer', 'git://jelmer.uk/code/dulwich')
コード例 #4
0
 def test_new(self):
     porcelain.remote_add(self.repo, 'jelmer',
                          'git://jelmer.uk/code/dulwich')
     c = self.repo.get_config()
     self.assertEqual(c.get((b'remote', b'jelmer'), b'url'),
                      b'git://jelmer.uk/code/dulwich')
コード例 #5
0
    def _clone(cls, url: str, refspec: GitRefSpec, target: Path) -> Repo:
        """
        Helper method to clone a remove repository at the given `url` at the specified
        ref spec.
        """
        local: Repo
        if not target.exists():
            local = Repo.init(str(target), mkdir=True)  # type: ignore[no-untyped-call]
            porcelain.remote_add(local, "origin", url)  # type: ignore[no-untyped-call]
        else:
            local = Repo(str(target))  # type: ignore[no-untyped-call]

        remote_refs = cls._fetch_remote_refs(url=url, local=local)

        logger.debug(
            "Cloning <c2>%s</> at '<c2>%s</>' to <c1>%s</>", url, refspec.key, target
        )

        try:
            refspec.resolve(remote_refs=remote_refs)
        except KeyError:  # branch / ref does not exist
            raise PoetrySimpleConsoleException(
                f"Failed to clone {url} at '{refspec.key}', verify ref exists on"
                " remote."
            )

        # ensure local HEAD matches remote
        local.refs[b"HEAD"] = remote_refs.refs[b"HEAD"]

        if refspec.is_ref:
            # set ref to current HEAD
            local.refs[refspec.ref] = local.refs[b"HEAD"]

        for base, prefix in {
            (b"refs/remotes/origin", b"refs/heads/"),
            (b"refs/tags", b"refs/tags"),
        }:
            local.refs.import_refs(  # type: ignore[no-untyped-call]
                base=base,
                other={
                    n[len(prefix) :]: v
                    for (n, v) in remote_refs.refs.items()
                    if n.startswith(prefix) and not n.endswith(ANNOTATED_TAG_SUFFIX)
                },
            )

        try:
            with local:
                local.reset_index()  # type: ignore[no-untyped-call]
        except (AssertionError, KeyError) as e:
            # this implies the ref we need does not exist or is invalid
            if isinstance(e, KeyError):
                # the local copy is at a bad state, lets remove it
                logger.debug(
                    "Removing local clone (<c1>%s</>) of repository as it is in a"
                    " broken state.",
                    local.path,
                )
                remove_directory(local.path, force=True)

            if isinstance(e, AssertionError) and "Invalid object name" not in str(e):
                raise

            logger.debug(
                "\nRequested ref (<c2>%s</c2>) was not fetched to local copy and cannot"
                " be used. The following error was raised:\n\n\t<warning>%s</>",
                refspec.key,
                e,
            )

            raise PoetrySimpleConsoleException(
                f"Failed to clone {url} at '{refspec.key}', verify ref exists on"
                " remote."
            )

        return local
コード例 #6
0
ファイル: cli.py プロジェクト: codilemma/Python_env
 def run(self, args):
     parser = optparse.OptionParser()
     options, args = parser.parse_args(args)
     porcelain.remote_add('.', args[0], args[1])
コード例 #7
0
ファイル: cmd.py プロジェクト: alan-wu/pmr2.wfctrl
 def write_remote(self, workspace, target_remote=None, **kw):
     target_remote = target_remote or self.default_remote
     porcelain.remote_rm(workspace.working_dir, target_remote.encode())
     porcelain.remote_add(workspace.working_dir, target_remote.encode(),
                          self.remote.encode('utf-8'))
コード例 #8
0
ファイル: test_porcelain.py プロジェクト: paddie/dulwich
 def test_exists(self):
     porcelain.remote_add(
         self.repo, 'jelmer', 'git://jelmer.uk/code/dulwich')
     self.assertRaises(porcelain.RemoteExists, porcelain.remote_add,
                       self.repo, 'jelmer', 'git://jelmer.uk/code/dulwich')
コード例 #9
0
    elif command == "ls-remote":
        print >> sys.stderr, "handle command ls-remote"
        porcelain.ls_remote(remote)
    elif command == "remote":
        print >> sys.stderr, "handle command remote"
        try:
            verb = sys.argv[2]
            if verb == "add":
                """
                def remote_add(repo, name, url):
                Add a remote.
                :param repo: Path to the repository
                :param name: Remote name
                :param url: Remote URL
                """
                porcelain.remote_add(repoPath, sys.argv[3], sys.argv[4])

        except IndexError:
            print >> sys.stderr, "not sure what you want, consult help"
    elif command == "log":
        """
        def log(repo='.', paths=None, outstream=sys.stdout, max_entries=None, reverse=False, name_status=False):
        Write commit logs.
        Parameters	repo	Path to repository
        paths	Optional set of specific paths to print entries for
        outstream	Stream to write log output to
        reverse	Reverse order in which entries are printed
        name_status	Print name status
        max_entries	Optional maximum number of entries to display
        """
        print >> sys.stderr, "handle command log"
コード例 #10
0
ファイル: cmd.py プロジェクト: PMR2/pmr2.wfctrl
 def write_remote(self, workspace, target_remote=None, **kw):
     target_remote = target_remote or self.default_remote
     porcelain.remote_rm(workspace.working_dir, target_remote.encode())
     porcelain.remote_add(workspace.working_dir, target_remote.encode(), self.remote.encode('utf-8'))