Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-60748

clone options (--rev) not well suited for large repositories

    • Icon: Improvement Improvement
    • Resolution: Unresolved
    • Icon: Major Major
    • mercurial-plugin
    • Windows/Linux

      When cloning a large repository (~2G, general_delta format), using --rev to only clone a specific branch can lead to vastly increased clone times as shown in the table below:

      --rev default --uncompressed elapsed time
      16:12,05
      15:21,41
      1:24,41
      8:18,24

      The times have been measured on a Linux host using the following command:

      time hg clone <options> <URL>

      As can be seen, adding --rev default increases the clone time dramatically, while adding --uncompressed yields the fastest result. On Windows, the situation is even worse (~3 - 4 times slower).

      It would therefor be nice if one could enable or disable clone options on a per-job basis, or even have something similar to Git plugin's "Additional Behaviours" which allows to specify "Advanced clone behaviours" (and many more).

          [JENKINS-60748] clone options (--rev) not well suited for large repositories

          Dirk Heinrichs created issue -
          Dirk Heinrichs made changes -
          Description Original: When cloning a large repository (~2G, general_delta format), using --rev to only clone a specific branch can lead to vastly increased clone times as shown in the table below:
          ||--rev default||--uncompressed||elapsed time||
          |(/)|(/)|16:12,05|
          |(/)|(-)|15:21,41|
          |(-)|(/)|1:24,41|
          |(-)|(-)|8:18,24|

          The times have been measured on a Linux host using the following command:
          {code:java}
          time hg clone <options> <URL>{code}
          As can be seen, adding _--rev default_ increases the clone time dramatically, while adding _--uncompressed_ yields the fastest result. On Windows, the situation is even worse (~3 - 4 times slower).

          It would therefor be nice if one could enable or disable clone options on a per-job basis, or even have something similar to Git plugin's "Additional Behaviours" which allows to specify "Advanced clone behaviours" (and many more).
          New: When cloning a large repository (~2G, general_delta format), using --rev to only clone a specific branch can lead to vastly increased clone times as shown in the table below:
          ||--rev default||--uncompressed||elapsed time||
          |(/)|(/)|16:12,05|
          |(/)|(-)|15:21,41|
          |(-)|(/)|1:24,41|
          |(-)|(-)|8:18,24|

          The times have been measured on a Linux host using the following command:
          {code:java}
          time hg clone <options> <URL>{code}
          As can be seen, adding --rev default increases the clone time dramatically, while adding --uncompressed yields the fastest result. On Windows, the situation is even worse (~3 - 4 times slower).

          It would therefor be nice if one could enable or disable clone options on a per-job basis, or even have something similar to Git plugin's "Additional Behaviours" which allows to specify "Advanced clone behaviours" (and many more).
          Jesse Glick made changes -
          Labels New: performance

            Unassigned Unassigned
            dhs Dirk Heinrichs
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: