git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 0/7] Foreign VCS support

From
Daniel Barkalow <barkalow@iabervon.org>
Date
May 27, 2009, 18:15 UTC
Message-ID
<alpine.LNX.2.00.0905271328160.2147@iabervon.org>

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
Next: Pete Wyckoff
Message 1 of 7 in “Foreign VCS support”
  1. 0/7 Foreign VCS supportDaniel Barkalow, May 27, 2009
  2. Pete WyckoffJun 15, 2009
  3. Daniel BarkalowJun 15, 2009
  4. Pete WyckoffJun 16, 2009
  5. Daniel BarkalowJun 16, 2009
  6. Pete WyckoffJun 18, 2009
  7. Daniel BarkalowJun 18, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.