Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitd255f4c

Browse files
committed
Merge remote-tracking branch 'upstream/master'
2 parentsb4492c7 +c5077da commitd255f4c

File tree

4 files changed

+40
-17
lines changed

4 files changed

+40
-17
lines changed

‎.travis.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
language:python
22
python:
3+
-"2.6"
34
-"2.7"
45
-"3.3"
56
-"3.4"
67
-"3.5"
78
# - "pypy" - won't work as smmap doesn't work (see gitdb/.travis.yml for details)
9+
matrix:
10+
allow_failures:
11+
-python:"2.6"
812
git:
913
# a higher depth is needed for most of the tests - must be high enough to not actually be shallow
1014
# as we clone our own repository in the process

‎doc/source/intro.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ Requirements
1414
============
1515

1616
* `Python`_ 2.7 or newer
17-
Since GitPython 2.0.0
17+
Since GitPython 2.0.0. Please note that python 2.6 is still reasonably well supported, but might
18+
deteriorate over time.
1819
* `Git`_ 1.7.0 or newer
1920
It should also work with older versions, but it may be that some operations
2021
involving remotes will not work as expected.

‎git/cmd.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
importerrno
1414
importmmap
1515

16-
fromcollectionsimportOrderedDict
16+
fromgit.odictimportOrderedDict
1717

1818
fromcontextlibimportcontextmanager
1919
importsignal
@@ -44,7 +44,8 @@
4444

4545
execute_kwargs= ('istream','with_keep_cwd','with_extended_output',
4646
'with_exceptions','as_process','stdout_as_string',
47-
'output_stream','with_stdout','kill_after_timeout')
47+
'output_stream','with_stdout','kill_after_timeout',
48+
'universal_newlines')
4849

4950
log=logging.getLogger('git.cmd')
5051
log.addHandler(logging.NullHandler())
@@ -487,6 +488,7 @@ def execute(self, command,
487488
stdout_as_string=True,
488489
kill_after_timeout=None,
489490
with_stdout=True,
491+
universal_newlines=False,
490492
**subprocess_kwargs
491493
):
492494
"""Handles executing the command on the shell and consumes and returns
@@ -541,7 +543,9 @@ def execute(self, command,
541543
specify may not be the same ones.
542544
543545
:param with_stdout: If True, default True, we open stdout on the created process
544-
546+
:param universal_newlines:
547+
if True, pipes will be opened as text, and lines are split at
548+
all known line endings.
545549
:param kill_after_timeout:
546550
To specify a timeout in seconds for the git command, after which the process
547551
should be killed. This will have no effect if as_process is set to True. It is
@@ -605,9 +609,10 @@ def execute(self, command,
605609
bufsize=-1,
606610
stdin=istream,
607611
stderr=PIPE,
608-
stdout=with_stdoutandPIPEoropen(os.devnull,'wb'),
612+
stdout=PIPEifwith_stdoutelseopen(os.devnull,'wb'),
609613
shell=self.USE_SHELL,
610614
close_fds=(os.name=='posix'),# unsupported on windows
615+
universal_newlines=universal_newlines,
611616
**subprocess_kwargs
612617
)
613618
exceptcmd_not_found_exceptionaserr:

‎git/remote.py

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@
2020
SymbolicReference,
2121
TagReference
2222
)
23-
24-
2523
fromgit.utilimport (
2624
LazyMixin,
2725
Iterable,
@@ -34,7 +32,10 @@
3432
)
3533
fromgit.cmdimporthandle_process_output
3634
fromgitdb.utilimportjoin
37-
fromgit.compatimportdefenc
35+
fromgit.compatimport (defenc,force_text)
36+
importlogging
37+
38+
log=logging.getLogger('git.remote')
3839

3940

4041
__all__= ('RemoteProgress','PushInfo','FetchInfo','Remote')
@@ -568,8 +569,8 @@ def _get_fetch_info_from_stderr(self, proc, progress):
568569

569570
progress_handler=progress.new_message_handler()
570571

571-
forlineinproc.stderr.readlines():
572-
line=line.decode(defenc)
572+
forlineinproc.stderr:
573+
line=force_text(line)
573574
forplineinprogress_handler(line):
574575
ifline.startswith('fatal:')orline.startswith('error:'):
575576
raiseGitCommandError(("Error when fetching: %s"%line,),2)
@@ -589,11 +590,21 @@ def _get_fetch_info_from_stderr(self, proc, progress):
589590
fetch_head_info= [l.decode(defenc)forlinfp.readlines()]
590591
fp.close()
591592

592-
# NOTE: We assume to fetch at least enough progress lines to allow matching each fetch head line with it.
593593
l_fil=len(fetch_info_lines)
594594
l_fhi=len(fetch_head_info)
595-
assertl_fil>=l_fhi,"len(%s) <= len(%s)"% (l_fil,l_fhi)
596-
595+
ifl_fil!=l_fhi:
596+
msg="Fetch head lines do not match lines provided via progress information\n"
597+
msg+="length of progress lines %i should be equal to lines in FETCH_HEAD file %i\n"
598+
msg+="Will ignore extra progress lines or fetch head lines."
599+
msg%= (l_fil,l_fhi)
600+
log.debug(msg)
601+
ifl_fil<l_fhi:
602+
fetch_head_info=fetch_head_info[:l_fil]
603+
else:
604+
fetch_info_lines=fetch_info_lines[:l_fhi]
605+
# end truncate correct list
606+
# end sanity check + sanitization
607+
597608
output.extend(FetchInfo._from_line(self.repo,err_line,fetch_line)
598609
forerr_line,fetch_lineinzip(fetch_info_lines,fetch_head_info))
599610
returnoutput
@@ -673,8 +684,8 @@ def fetch(self, refspec=None, progress=None, **kwargs):
673684
else:
674685
args= [refspec]
675686

676-
proc=self.repo.git.fetch(self,*args,as_process=True,with_stdout=False,v=True,
677-
**kwargs)
687+
proc=self.repo.git.fetch(self,*args,as_process=True,with_stdout=False,
688+
universal_newlines=True,v=True,**kwargs)
678689
res=self._get_fetch_info_from_stderr(proc,progress)
679690
ifhasattr(self.repo.odb,'update_cache'):
680691
self.repo.odb.update_cache()
@@ -692,7 +703,8 @@ def pull(self, refspec=None, progress=None, **kwargs):
692703
# No argument refspec, then ensure the repo's config has a fetch refspec.
693704
self._assert_refspec()
694705
kwargs=add_progress(kwargs,self.repo.git,progress)
695-
proc=self.repo.git.pull(self,refspec,with_stdout=False,as_process=True,v=True,**kwargs)
706+
proc=self.repo.git.pull(self,refspec,with_stdout=False,as_process=True,
707+
universal_newlines=True,v=True,**kwargs)
696708
res=self._get_fetch_info_from_stderr(proc,progress)
697709
ifhasattr(self.repo.odb,'update_cache'):
698710
self.repo.odb.update_cache()
@@ -733,7 +745,8 @@ def push(self, refspec=None, progress=None, **kwargs):
733745
If the operation fails completely, the length of the returned IterableList will
734746
be null."""
735747
kwargs=add_progress(kwargs,self.repo.git,progress)
736-
proc=self.repo.git.push(self,refspec,porcelain=True,as_process=True,**kwargs)
748+
proc=self.repo.git.push(self,refspec,porcelain=True,as_process=True,
749+
universal_newlines=True,**kwargs)
737750
returnself._get_push_info(proc,progress)
738751

739752
@property

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp