Exemple #1
0
 def stale_refs(self):
     """
     Returns 
         IterableList RemoteReference objects that do not have a corresponding 
         head in the remote reference anymore as they have been deleted on the 
         remote side, but are still available locally.
         
         The IterableList is prefixed, hence the 'origin' must be omitted. See
         'refs' property for an example.
     """
     out_refs = IterableList(RemoteReference._id_attribute_,
                             "%s/" % self.name)
     for line in self.repo.git.remote("prune", "--dry-run",
                                      self).splitlines()[2:]:
         # expecting
         # * [would prune] origin/new_branch
         token = " * [would prune] "
         if not line.startswith(token):
             raise ValueError(
                 "Could not parse git-remote prune result: %r" % line)
         fqhn = "%s/%s" % (RemoteReference._common_path_default,
                           line.replace(token, ""))
         out_refs.append(RemoteReference(self.repo, fqhn))
     # END for each line
     return out_refs
Exemple #2
0
	def refs(self):
		"""
		:return:
			IterableList of RemoteReference objects. It is prefixed, allowing 
			you to omit the remote path portion, i.e.::
			 remote.refs.master # yields RemoteReference('/refs/remotes/origin/master')"""
		out_refs = IterableList(RemoteReference._id_attribute_, "%s/" % self.name)
		out_refs.extend(RemoteReference.list_items(self.repo, remote=self.name))
		assert out_refs, "Remote %s did not have any references" % self.name
		return out_refs
Exemple #3
0
	def refs(self):
		"""
		:return:
			IterableList of RemoteReference objects. It is prefixed, allowing 
			you to omit the remote path portion, i.e.::
			 remote.refs.master # yields RemoteReference('/refs/remotes/origin/master')"""
		out_refs = IterableList(RemoteReference._id_attribute_, "%s/" % self.name)
		out_refs.extend(RemoteReference.list_items(self.repo, remote=self.name))
		assert out_refs, "Remote %s did not have any references" % self.name
		return out_refs
Exemple #4
0
	def remote_ref(self):
		"""
		:return:
			Remote Reference or TagReference in the local repository corresponding 
			to the remote_ref_string kept in this instance."""
		# translate heads to a local remote, tags stay as they are
		if self.remote_ref_string.startswith("refs/tags"):
			return TagReference(self._remote.repo, self.remote_ref_string)
		elif self.remote_ref_string.startswith("refs/heads"):
			remote_ref = Reference(self._remote.repo, self.remote_ref_string)
			return RemoteReference(self._remote.repo, "refs/remotes/%s/%s" % (str(self._remote), remote_ref.name))
		else:
			raise ValueError("Could not handle remote ref: %r" % self.remote_ref_string)
	def refs(self):
		"""
		:return:
			IterableList of RemoteReference objects. It is prefixed, allowing 
			you to omit the remote path portion, i.e.::
			 remote.refs.master # yields RemoteReference('/refs/remotes/origin/master')"""
		out_refs = IterableList(RemoteReference._id_attribute_, "%s/" % self.name)
		for ref in RemoteReference.list_items(self.repo):
			if ref.remote_name == self.name:
				out_refs.append(ref)
			# END if names match
		# END for each ref
		assert out_refs, "Remote %s did not have any references" % self.name
		return out_refs
Exemple #6
0
    def refs(self):
        """
		:return:
			IterableList of RemoteReference objects. It is prefixed, allowing 
			you to omit the remote path portion, i.e.::
			 remote.refs.master # yields RemoteReference('/refs/remotes/origin/master')"""
        out_refs = IterableList(RemoteReference._id_attribute_,
                                "%s/" % self.name)
        for ref in RemoteReference.list_items(self.repo):
            if ref.remote_name == self.name:
                out_refs.append(ref)
            # END if names match
        # END for each ref
        assert out_refs, "Remote %s did not have any references" % self.name
        return out_refs