def add_remote_repo(self, name, url, tags=True, fetch=False): """ Add a tracked remote repository @param name: the name to use for the remote @type name: C{str} @param url: the url to add @type url: C{str} @param tags: whether to fetch tags @type tags: C{bool} @param fetch: whether to fetch immediately from the remote side @type fetch: C{bool} """ args = GitArgs('add') args.add_false(tags, '--no-tags') args.add_true(fetch, '--fetch') args.add(name, url) self._git_command("remote", args.args)
def write_file(self, filename, filters=True): """ Hash a single file and write it into the object database @param filename: the filename to the content of the file to hash @type filename: C{str} @param filters: whether to run filters @type filters: C{bool} @return: the hash of the file @rtype: C{str} """ args = GitArgs('-w', '-t', 'blob') args.add_false(filters, '--no-filters') args.add(filename) sha1, stderr, ret = self._git_inout('hash-object', args.args, capture_stderr=True) if not ret: return sha1.strip() else: raise GbpError("Failed to hash %s: %s" % (filename, stderr))