Permalink
Switch branches/tags
Commits on Jun 5, 2012
  1. Merge branch 'externals-unicode-paths' of git://github.com/aroben/git…

    … into devel
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Jun 5, 2012
  2. Fix launching of externals from Unicode paths

    If Git were installed in a path containing non-ASCII characters,
    commands such as git-am and git-submodule, which are implemented as
    externals, would fail to launch with the following error:
    
    > fatal: 'am' appears to be a git command, but we were not
    > able to execute it. Maybe git-am is broken?
    
    This was due to lookup_prog not being Unicode-aware. It was somehow
    missed in 2ee5a1a.
    
    Note that the only problem in this function was calling
    GetFileAttributes instead of GetFileAttributesW. The calls to access()
    were fine because access() is a macro which resolves to mingw_access,
    which already handles Unicode correctly. But I changed lookup_prog to
    use _waccess directly so that we only convert the path to UTF-16 once.
    
    Signed-off-by: Adam Roben <adam@roben.org>
    committed Jun 5, 2012
Commits on Jun 4, 2012
  1. fixup! Work around a problem identified by BuildHive

    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Jun 4, 2012
Commits on Jun 1, 2012
  1. Ensure the resource file is rebuilt when the version changes.

    Acked-by: Erik Faye-Lund <kusmabite@gmail.com>
    Acked-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
    patthoyts committed Jun 1, 2012
Commits on May 31, 2012
  1. Windows resource: handle dashes in the Git version gracefully

    Reported by postiffm as issue #14.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed May 31, 2012
Commits on May 29, 2012
  1. msysgit: Add the --large-address-aware linker directive to the makefile.

    This has the effect of increasing the address space from 2GB to 4GB under
    64-bit Windows, reducing the likelihood of an "out of memory" error when
    e.g.  repacking a large repository.  The test suite passes with this
    patch, with and without the MEM_TOP_DOWN flag added to all VirtualAlloc
    calls.  While this is no guarantee that there are no issues with large
    memory support (it could break Git on other setups than mine, for
    example), it at least increases the chance that nothing obvious goes wrong
    (such as errors introduced by faulty sign extension, say, with ssize_t).
    
    [PT: Resolves github issue #12]
    
    Signed-off-by: Pierre le Riche <github@pleasedontspam.me>
    Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
    pleriche committed with dscho May 28, 2012
  2. Provide a Windows version resource for the git executables.

    Embeds the git version and description into the git executable thus
    implementing the request in issue #5.
    
    Acked-by: Heiko Voigt <hvoigt@hvoigt.net>
    Acked-by: Sebastian Schuberth <sschuberth@gmail.com>
    Acked-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
    patthoyts committed with dscho May 23, 2012
  3. Sleep 1 millisecond in poll() to avoid busy wait

    I played around with this quite a bit. After trying some more complex
    schemes, I found that what worked best is to just sleep 1 millisecond
    between iterations. Though it's a very short time, it still completely
    eliminates the busy wait condition, without hurting perf.
    
    There code uses SleepEx(1, TRUE) to sleep. See this page for a good
    discussion of why that is better than calling SwitchToThread, which
    is what was used previously:
    http://stackoverflow.com/questions/1383943/switchtothread-vs-sleep1
    
    Note that calling SleepEx(0, TRUE) does *not* solve the busy wait.
    
    The most striking case was when testing on a UNC share with a large repo,
    on a single CPU machine. Without the fix, it took 4 minutes 15 seconds,
    and with the fix it took just 1:08! I think it's because git-upload-pack's
    busy wait was eating the CPU away from the git process that's doing the
    real work. With multi-proc, the timing is not much different, but tons of
    CPU time is still wasted, which can be a killer on a server that needs to
    do bunch of other things.
    
    I also tested the very fast local case, and didn't see any measurable
    difference. On a big repo with 4500 files, the upload-pack took about 2
    seconds with and without the fix.
    theoleblond committed with dscho May 16, 2012
  4. Work around a problem identified by BuildHive

    Apparently the signal handling is not quite correct in the fsckobject
    handling (most likely we rely on a side effect that lets us still output
    some message after receiving a signal 13 but in the BuildHive setup this
    fails intermittently).
    
    As a consequence, the push in t5504 does fail as expected, but fails to
    output anything (unexpected). Since this is good enough for now, let's
    handle an empty output as success, too.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed May 29, 2012
  5. t1050: Fix invalid call to dd(1)

    This is a companion patch to fce52b4(t4012: Fix invalid call to dd(1)).
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed May 23, 2012
  6. t4012: Fix invalid call to dd(1)

    t4012 assumed that it is okay to seek beyond the end of stdin. It is not,
    and leads to an access violation (Windows speak for: segmentation fault)
    with MinGW's dd.exe iff run in non-verbose mode.
    
    Further, for some reason 'echo X | dd bs=1k seek=1' resulted in 2050 bytes
    in this developer's setup instead of 1026.
    
    So let's use a valid technique to generate 1024 NULs followed by X and a
    line feed: a good ole' Perl script.
    
    This patch is dedicated to Randal "Merlyn" Schwartz.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed May 12, 2012
  7. t5801: skip without hg

    The tests for remote-hg require hg, so skip them all when there is no
    hg available.
    mjg committed with dscho Mar 3, 2012
  8. fast-export: report SHA-1 instead of gibberish when marks exist already

    Cc: Pieter de Bie <pdebie@ai.rug.nl>
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Apr 9, 2012
  9. Always auto-gc after calling a fast-import transport

    After importing anything with fast-import, we should always let the
    garbage collector do its job, since the objects are written to disk
    inefficiently.
    
    This brings down an initial import of http://selenic.com/hg from about
    230 megabytes to about 14.
    
    In the future, we may want to make this configurable on a per-remote
    basis, or maybe teach fast-import about it in the first place.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Apr 9, 2012
  10. remote-hg: do not interfer with hg's revs() method

    Matt Mackall introduced a revs() method to the localrepo class on Wed
    Nov 2 13:37:34 2011 in the commit 'localrepo: add revs helper method'.
    It is used when constructing a commit in memory.
    
    If we store the set of revs we want to handle under the same name, it
    overrides that method, resulting in an unpleasant 'TypeError: 'set'
    object is not callable' whenever we want to push (as we are constructing
    commits in memory, then).
    
    So let's work around that by renaming our field to 'revs_' and hope that
    upstream Mercurial does not introduce a field of that name, too.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Apr 7, 2012
  11. remote-hg: handle another funny author line from http://scelenic.com/hg

    In this case: David Soria Parra <dsp <at> php.net>.
    
    With this last of three Postel patches, remote-hg can import the
    Mercurial repository completely.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Apr 7, 2012
  12. remote-hg: another case of Postel's law

    This change allows invalid input from Mercurial repositories where the
    author is recorded as 'Name <email@blah' (missing the closing '>').
    
    With this change, importing http://scelenic.com/hg itself no longer fails
    with:
    
    	fatal: Missing > in ident string: Benoit Boissinot
    	<benoit.boissinot@ens-lyon.org <none@none> 1129685868 -0700
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Apr 7, 2012
  13. remote-hg: Postel's law dictates we should handle Author<author@mail>

    We should handle a missing space before the email part of an author ident
    gracefully. See for example the icedtea6 repository.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Mar 29, 2012
  14. git-remote-hg: add tests

    SRabbelier committed with dscho Jul 24, 2011
  15. git-remote-hg: add the helper

    The helper uses the previously added infrastructure.
    
    Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
    SRabbelier committed with dscho Jul 24, 2011
  16. remote-hg: adjust to hg 1.9

    hg 1.0 changed the signature of hg.clone(). Adjust to it.
    
    A real fix would need to check the hg version or try/catch.
    mjg committed with dscho Mar 16, 2012
  17. git-remote-hg: add GitExporter/GitImporter/NonLocalGit

    This is inftrastructure required to implement git-remote-hg.
    SRabbelier committed with dscho Jul 24, 2011
  18. git-remote-hg: add hgexport, an hg-fast-export equivalent

    This class will be used by git-remote-hg to do the heavy lifting.
    SRabbelier committed with dscho Jul 24, 2011
  19. git-remote-hg: add GitHg, a helper class for converting hg commits to…

    … git
    
    This class will be used by HgExport.
    SRabbelier committed with dscho Jul 24, 2011
  20. git-remote-hg: add hgimport, an hg-fast-import equivalent

    This class will be used by git-remote-hg to do the heavy lifting.
    SRabbelier committed with dscho Jul 24, 2011
  21. git-remote-testgit: make local a function

    Other helpers (such as git-remote-hg) require that 'self.local' is a
    function, rather than a variable.
    SRabbelier committed with dscho Jul 24, 2011
  22. remote-testgit: factor out RemoteHelper class

    Facilitate writing import-export based helpers in python by
    refactoring common code to a base class.
    
    [jes: rebased to newer upstream Git]
    
    Signed-off-by: Sverre Rabbelier <srabbelier@gmail.com>
    Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
    SRabbelier committed with dscho Jul 23, 2011
  23. remote-helper: check helper status after import/export

    Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
    Signed-off-by: Sverre Rabbelier <srabbelier@gmail.com>
    SRabbelier committed with dscho Jul 23, 2011
  24. transport-helper: add trailing --

    SRabbelier committed with dscho Aug 29, 2010
  25. t5800: point out that deleting branches does not work

    This test actually breaks the repositories involved somehow, so it is
    not enabled by default.
    SRabbelier committed with dscho Jul 15, 2011
  26. t5800: test pushing a new branch with old content

    This works now that fast-export has been fixed to properly handle
    refs that point to a commit that was not exported during the current
    fast-export run.
    SRabbelier committed with dscho Jul 15, 2011
  27. setup_revisions: remember whether a ref was positive or not

    This will be required by fast-export, when no commits were
    exported, but the refs should be set, of course.
    
    Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
    Signed-off-by: Sverre Rabbelier <srabbelier@gmail.com>
    dscho committed with dscho Jul 23, 2011
  28. fast-export: do not export negative refs

    When calling `git fast-export master..next` we want to export
    refs/heads/next, but not refs/heads/master.
    
    Currently this is not a problem, because negative refs' commits
    are never shown. In the next commit this will be changed in order
    to make sure that 'master..master' does export master. I.e. even
    refs whose commits are not shown are exported.
    
    Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
    Signed-off-by: Sverre Rabbelier <srabbelier@gmail.com>
    dscho committed with dscho Jul 23, 2011
  29. setup_revisions: remember whether a ref was positive or not

    This will be required by fast-export, when no commits were
    exported, but the refs should be set, of course.
    
    Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
    Signed-off-by: Sverre Rabbelier <srabbelier@gmail.com>
    dscho committed with dscho Jul 23, 2011