Descriptiongoinstall: More intelligent vcs selection for common sites
goinstall has built in support for a few common code hosting sites. The
identification of which vcs tool should be used was based purely on a
regex match against the provided import path. The problem with this
approach is that it requires distinct import paths for different vcs
tools on the same site.
Since bitbucket has recently starting hosting Git repositories under the
same bitbucket.org/user/project scheme as it already hosts Mercurial
repositories, now would seem a good time to take a more flexible
approach.
We still match the import path against a list of regexes, but now the
match is purely to distinguish the different hosting sites. Once the
site is identified, the specified function is called with the repo and
path matched out of the import string. This function is responsible for
creating the vcsMatch structure that tells us what we need to download
the code.
For github and launchpad, only one vcs tool is currently supported, so
these functions can simply return a vcsMatch structure. For googlecode,
we retain the behaviour of determing the vcs from the import path - but
now it is done by the function instead of the regex. For bitbucket, we
use api.bitbucket.org to find out what sort of repository the specified
import path corresponds to - and then construct the appropriate vcsMatch
structure.
Patch Set 1 #Patch Set 2 : diff -r 3fe4f3f34e9b https://go.googlecode.com/hg/ #Patch Set 3 : diff -r 3fe4f3f34e9b https://go.googlecode.com/hg/ #Patch Set 4 : diff -r 3fe4f3f34e9b https://go.googlecode.com/hg/ #
Total comments: 14
Patch Set 5 : diff -r 3fe4f3f34e9b https://go.googlecode.com/hg/ #MessagesTotal messages: 7
|