This is a newly-generated and reorganized replacement for db/foreign-scm. It applies to recent next. I'd be particularly interested in feedback from people working on hg import/export programs, since that's probably a better user for this code than my p4 helper, and also doesn't rely on closed-source code. The overall goal is to be able to configure a remote in some way and then use "git fetch/pull" and "git push" to interact with other version control systems, instead of having interface scripts with their own command lines, additional instructions, etc. The main changes are: (1) The remote does not need to use a url for the location (2) The helper is rearranged to be able to do multiple operations in a single execution, allowing it to keep a single open connection for listing the refs and then fetching them. (3) There is some preliminary support for exporting data to the foreign system. Also, the p4 example helper is significantly more capable and efficient than the previously-posted one. Daniel Barkalow (7): Add specification of git-vcs-* helper programs Use a function to determine whether a remote is valid Allow fetch to modify refs Allow programs to not depend on remotes having urls Add a config option for remotes to specify a foreign vcs Add a transport implementation using git-vcs-* helpers Implement git-vcs-p4 Documentation/config.txt | 4 + Documentation/git-vcs-p4.txt | 47 ++ Documentation/git-vcs.txt | 77 +++ Makefile | 24 + builtin-clone.c | 6 +- builtin-fetch.c | 19 +- builtin-ls-remote.c | 4 +- builtin-push.c | 54 ++- remote.c | 15 +- remote.h | 2 + transport-foreign.c | 200 +++++++ transport.c | 25 +- transport.h | 44 ++- vcs-p4/p4client-api.cc | 455 +++++++++++++++ vcs-p4/p4client.c | 158 ++++++ vcs-p4/p4client.h | 74 +++ vcs-p4/vcs-p4.c | 1246 ++++++++++++++++++++++++++++++++++++++++++ vcs-p4/vcs-p4.h | 135 +++++ 18 files changed, 2545 insertions(+), 44 deletions(-) create mode 100644 Documentation/git-vcs-p4.txt create mode 100644 Documentation/git-vcs.txt create mode 100644 transport-foreign.c create mode 100644 vcs-p4/p4client-api.cc create mode 100644 vcs-p4/p4client.c create mode 100644 vcs-p4/p4client.h create mode 100644 vcs-p4/vcs-p4.c create mode 100644 vcs-p4/vcs-p4.h -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html