Skip to content
Snippets Groups Projects
  • Dan Villiom Podlaski Christiansen's avatar
    b46639f34ff6
    push & pull: consolidate invalid path handling, default to skipping · b46639f34ff6
    Dan Villiom Podlaski Christiansen authored
    The current behaviour is quite unhelpful, given that it either allows
    you to abort the conversion or generate a bogus repository. As an
    example, GitHub rejects anything with a `.git` in it.
    
    Instead, the new default is to issue a warning and simply discard the
    dangerous files. Although this might cause problems down the line, I'd
    much rather have those problems than just have hg-git give up.
    
    As an example of such a bogus repository, look no further than this
    one. c43c02cc803a committed some tests from Dulwich with nested Git
    repositories, and a061dce264b7 renamed them. Prior to this change,
    hg-git could not push its own repository to GitHub.
    
    Further more, Mercurial disallows paths containing carriage return
    (CR) and newline (NL) characters; as noted in the original Mercurial
    bug report that enabled this behaviour,[1] such paths appear for
    folder icons on macOS. This was reported on the list by Uwe Brauer.[2]
    
    Since Mercurial simply cannot store these files, we always either skip
    them or abort the conversion.
    
    [1] https://bz.mercurial-scm.org/show_bug.cgi?id=352
    [2] https://groups.google.com/g/hg-git/c/Rz3oRzrMS3Q/m/RRq4AIMsBAAJ
    b46639f34ff6
    History
    push & pull: consolidate invalid path handling, default to skipping
    Dan Villiom Podlaski Christiansen authored
    The current behaviour is quite unhelpful, given that it either allows
    you to abort the conversion or generate a bogus repository. As an
    example, GitHub rejects anything with a `.git` in it.
    
    Instead, the new default is to issue a warning and simply discard the
    dangerous files. Although this might cause problems down the line, I'd
    much rather have those problems than just have hg-git give up.
    
    As an example of such a bogus repository, look no further than this
    one. c43c02cc803a committed some tests from Dulwich with nested Git
    repositories, and a061dce264b7 renamed them. Prior to this change,
    hg-git could not push its own repository to GitHub.
    
    Further more, Mercurial disallows paths containing carriage return
    (CR) and newline (NL) characters; as noted in the original Mercurial
    bug report that enabled this behaviour,[1] such paths appear for
    folder icons on macOS. This was reported on the list by Uwe Brauer.[2]
    
    Since Mercurial simply cannot store these files, we always either skip
    them or abort the conversion.
    
    [1] https://bz.mercurial-scm.org/show_bug.cgi?id=352
    [2] https://groups.google.com/g/hg-git/c/Rz3oRzrMS3Q/m/RRq4AIMsBAAJ