- Feb 19, 2014
-
-
Siddharth Agarwal authored
-
Siddharth Agarwal authored
-
Siddharth Agarwal authored
-
Siddharth Agarwal authored
-
Siddharth Agarwal authored
Also drop the GitHandler import. All this now lives on hgrepo.
-
Siddharth Agarwal authored
Previously we'd load the git and hg maps twice on separate git handler objects. This avoids that. For a repo with over 50,000 commits, this brings a no-op hg pull down from 2.45 seconds to 2.37.
-
Siddharth Agarwal authored
Currently we call hgrepo.tags() separately for each tag. (This should be fixed at some point.) This avoids initializing a separate git handler for each tag. For a repository with over 150 tags, this brings down a no-op hg pull by 0.05 seconds.
-
Siddharth Agarwal authored
-
Siddharth Agarwal authored
-
Siddharth Agarwal authored
-
Siddharth Agarwal authored
-
Siddharth Agarwal authored
This and upcoming patches have the goal of initializing a GitHandler just once for a Mercurial repo.
-
Siddharth Agarwal authored
Any commit in _map_git is already known, so there's no point walking further down the DAG. For a repo with over 50,000 commits, this brings down a no-op hg pull from 38 seconds to 2.5.
-
Siddharth Agarwal authored
getnewgitcommits() does a weird traversal where a particular commit SHA is visited as many times as the number of parents it has, effectively doubling object reads in the standard case with one parent. This patch makes the convert_list a cache for objects, so that a particular Git object is read just once. On a mostly linear repository with over 50,000 commits, this brings a no-op hg pull down from 70 seconds to 38, which is close to half the time, as expected. Note that even a no-op hg pull currently does a full DAG traversal -- an upcoming patch will fix this.
-
Siddharth Agarwal authored
This wasn't obvious to me at first.
-
- Feb 16, 2014
-
-
Siddharth Agarwal authored
-
Siddharth Agarwal authored
For a repo with over 50,000 commits, this brings down the computation of 'export' from 1.25 seconds to 0.25 seconds. To scale this to hundreds of thousands of commits, one solution might be to maintain the mapping in a DAG data structure mirroring the changelog, over which findcommonmissing can be used.
-
- Feb 13, 2014
-
-
Siddharth Agarwal authored
Now that _handle_subrepos can handle .hgsubstate being removed, we should use it for that. The test changes make sure that the SHAs roundtrip.
-
Siddharth Agarwal authored
A test for this will be included in an upcoming patch.
-
Siddharth Agarwal authored
An upcoming patch will introduce similar variables for self._ctx. This helps disambiguate.
-
Siddharth Agarwal authored
This code will be used in multiple contexts in an upcoming patch.
-
Siddharth Agarwal authored
This will be used by _handle_subrepos in an upcoming patch.
-
- Feb 16, 2014
-
-
Siddharth Agarwal authored
-
- Feb 13, 2014
-
-
Siddharth Agarwal authored
We now also test: - removing one submodule but not all of them - replacing a submodule with a file - replacing a file with a submodule
-
- Feb 14, 2014
-
-
Siddharth Agarwal authored
Before this patch, in the git to hg conversion, .hgsubstate once created is never deleted, even if no submodules are any longer present. This is broken state, as shown by the test for which the SHA changes. Fix that by looking at the diff instead of just what submodules are present. Since 'gitlinks' now contains *changed* gitlinks, not *all* gitlinks, it no longer makes sense to gate gitmodules checks on that. This patch simply demonstrates that the test was broken; an upcoming patch will introduce more tests. Bonus: this also makes the import process faster because we no longer need to walk the entire tree to collect gitlinks. This will cause the SHAs of repos that have submodules added and then removed to change.
-
- Feb 15, 2014
-
-
Siddharth Agarwal authored
Also drop Mercurial < 1.5 support.
-
- Feb 14, 2014
-
-
Siddharth Agarwal authored
gparents will be used to compute .hgsubstate in an upcoming patch.
-
Siddharth Agarwal authored
Currently, to figure out which gitlinks are in a repository we walk through the entire tree. This patch lets us use get_files_changed to detect which gitlinks have changed.
-
- Feb 13, 2014
-
-
Siddharth Agarwal authored
There's no benefit to calling rev().
-
Siddharth Agarwal authored
Storing a ctx enables values like manifests to be cached on the context.
-
Siddharth Agarwal authored
An upcoming patch will introduce a new field called _ctx. This helps prevent confusion.
-
Dov Feldstern authored
-
- Feb 12, 2014
-
-
Dov Feldstern authored
This is an adaptation of the original patch submitted in [1], without the monkey-patching: a patch has been committed in dulwich [2] which allows clients to supply a custom urllib2 "opener" for opening the url; here, we provide such an opener, which provides authentication information obtained from the hg config. [1] https://groups.google.com/forum/#!topic/hg-git/9clPr1wdtiw [2] https://bugs.launchpad.net/dulwich/+bug/909037
-
Siddharth Agarwal authored
Consider two octopus merges, one of which is a child of the other. Without this patch, get_git_parents() called on the second octopus merge checks that each p1 is neither in the middle of an octopus merge nor the end of it. Since the end of the first octopus merge is a p1 of the second one, this asserts. Change the sanity check to only make sure that p1 is not in the middle of an octopus merge.
-
- Feb 07, 2014
-
-
Jordi Gutiérrez Hermoso authored
When handling OSError while visiting subdirectories, we're checking errno, but we never imported this module. This small patch fixes this.
-
- Dec 22, 2013
-
- Dec 15, 2013
-
-
durin42 authored
-
anatoly techtonik authored
-
- Dec 14, 2013