当前位置: 首页>>代码示例>>Python>>正文


Python Git.archive方法代码示例

本文整理汇总了Python中git.cmd.Git.archive方法的典型用法代码示例。如果您正苦于以下问题:Python Git.archive方法的具体用法?Python Git.archive怎么用?Python Git.archive使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在git.cmd.Git的用法示例。


在下文中一共展示了Git.archive方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: Repo

# 需要导入模块: from git.cmd import Git [as 别名]
# 或者: from git.cmd.Git import archive [as 别名]

#.........这里部分代码省略.........
		prev_path = None
		odbt = kwargs.pop('odbt', odb_default_type)
		if os.name == 'nt':
			if '~' in path:
				raise OSError("Git cannot handle the ~ character in path %r correctly" % path)
				
			# on windows, git will think paths like c: are relative and prepend the 
			# current working dir ( before it fails ). We temporarily adjust the working 
			# dir to make this actually work
			match = re.match("(\w:[/\\\])(.*)", path)
			if match:
				prev_cwd = os.getcwd()
				prev_path = path
				drive, rest_of_path = match.groups()
				os.chdir(drive)
				path = rest_of_path
				kwargs['with_keep_cwd'] = True
			# END cwd preparation 
		# END windows handling 
		
		try:
			proc = git.clone(url, path, with_extended_output=True, as_process=True, v=True, **add_progress(kwargs, git, progress))
			if progress:
				digest_process_messages(proc.stderr, progress)
			#END handle progress
			finalize_process(proc)
		finally:
			if prev_cwd is not None:
				os.chdir(prev_cwd)
				path = prev_path
			# END reset previous working dir
		# END bad windows handling
		
		# our git command could have a different working dir than our actual 
		# environment, hence we prepend its working dir if required
		if not os.path.isabs(path) and git.working_dir:
			path = join(git._working_dir, path)
			
		# adjust remotes - there may be operating systems which use backslashes, 
		# These might be given as initial paths, but when handling the config file
		# that contains the remote from which we were clones, git stops liking it
		# as it will escape the backslashes. Hence we undo the escaping just to be 
		# sure
		repo = cls(os.path.abspath(path), odbt = odbt)
		if repo.remotes:
			repo.remotes[0].config_writer.set_value('url', repo.remotes[0].url.replace("\\\\", "\\").replace("\\", "/"))
		# END handle remote repo
		return repo

	def clone(self, path, progress=None, **kwargs):
		"""Create a clone from this repository.
		:param path:
			is the full path of the new repo (traditionally ends with ./<name>.git).

		:param progress: See 'git.remote.Remote.push'.

		:param kwargs:
			odbt = ObjectDatabase Type, allowing to determine the object database
			implementation used by the returned Repo instance
			
			All remaining keyword arguments are given to the git-clone command
			
		:return: ``git.Repo`` (the newly cloned repo)"""
		return self._clone(self.git, self.git_dir, path, type(self.odb), progress, **kwargs)

	@classmethod
	def clone_from(cls, url, to_path, progress=None, **kwargs):
		"""Create a clone from the given URL
		:param url: valid git url, see http://www.kernel.org/pub/software/scm/git/docs/git-clone.html#URLS
		:param to_path: Path to which the repository should be cloned to
		:param progress: See 'git.remote.Remote.push'.
		:param kwargs: see the ``clone`` method
		:return: Repo instance pointing to the cloned directory"""
		return cls._clone(Git(os.getcwd()), url, to_path, GitCmdObjectDB, progress, **kwargs)

	def archive(self, ostream, treeish=None, prefix=None,  **kwargs):
		"""Archive the tree at the given revision.
		:parm ostream: file compatible stream object to which the archive will be written
		:parm treeish: is the treeish name/id, defaults to active branch
		:parm prefix: is the optional prefix to prepend to each filename in the archive
		:parm kwargs:
			Additional arguments passed to git-archive
			NOTE: Use the 'format' argument to define the kind of format. Use 
			specialized ostreams to write any format supported by python

		:raise GitCommandError: in case something went wrong
		:return: self"""
		if treeish is None:
			treeish = self.head.commit
		if prefix and 'prefix' not in kwargs:
			kwargs['prefix'] = prefix 
		kwargs['output_stream'] = ostream
		
		self.git.archive(treeish, **kwargs)
		return self
	
	rev_parse = rev_parse
		
	def __repr__(self):
		return '<git.Repo "%s">' % self.git_dir
开发者ID:2flcastro,项目名称:ka-lite,代码行数:104,代码来源:base.py


注:本文中的git.cmd.Git.archive方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。