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')
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")
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')
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')
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
def run(self, args): parser = optparse.OptionParser() options, args = parser.parse_args(args) porcelain.remote_add('.', args[0], args[1])
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'))
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')
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"
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'))