From: Daniel Barkalow <barkalow@iabervon.org>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org, Johan Herland <johan@herland.net>,
Johannes Schindelin <Johannes.Schindelin@gmx.de>
Subject: [PATCH 00/13] Native and foreign helpers
Date: Wed, 5 Aug 2009 01:01:49 -0400 (EDT) [thread overview]
Message-ID: <alpine.LNX.2.00.0908050052390.2147@iabervon.org> (raw)
This series has three parts:
01 - 03: Use an external program to fetch with curl. This improves
performance of scripts that call a lot of simple git
programs on systems where libcurl has a lot of dependencies
substantially, and introduces a standard format for external
helpers. Since the push side of http support is still
invoked from a custom helper program by the core transport
code, http support cannot yet be made a completely separate
package, but this is a step in that direction. Since the
previous version, this section has a few type fixes and in
more consistent about its use of strbufs.
04 - 10: Allow the external helper to import data from a foreign
system. This system may not use URLs at all, or may not use
them in a way that distinguishes the usage from git's
usage. The core code has to be able to deal with only
getting the values of refs after they have been imported,
not when they are simply listed, and deciding based on a
flag and the name whether to import them. The helper code
may (to this point) avoid doing anything to require the
local system to be git, rather than any other gfi-supporting
system (although there is no support for limiting the
generated history to things a particular system can
represent). This series has changed substantially since
previous versions, centered around sharing code with the
native helper methods, supporting code for the cvs and p4
helpers as they have evolved, and various fixes. Johan
Herland wrote the bulk of the last patch, including
specifying the command; I removed some portions of his patch
that were made unnecessary by changes to this series (and
rebasing it on the previous series).
11 - 13: Draft external helper for cvs. The first two patches are
directly by Johan Herland, and are included unchanged. The
final patch is the changes needed for the difference in API
between the original "vcs helper" series and the current
04-10. In order to get this part to work, the "jh/notes"
branch in pu is required, although the patches apply without
it.
As a separate series, I will be sending a new version of my p4 helper,
in addition to handling for an "export" command which is not yet
nailed down, since it is only supported by one helper and is not
agnostic as to the source system (like the import command can be).
Daniel Barkalow (10):
Add support for external programs for handling native fetches
Use an external program to implement fetching with curl
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 support for "import" helper command
Allow helpers to report in "list" command that the ref is unchanged
Changes for new vcs-helper series
Johan Herland (3):
Allow helpers to request marks for fast-import
First draft of CVS importer using the foreign-scm machinery
Add simple test cases of git-vcs-cvs functionality
Linus Torvalds (1):
git-http-fetch: not a builtin
Documentation/config.txt | 4 +
Documentation/git-remote-helpers.txt | 91 ++++
Documentation/git-vcs-cvs.txt | 85 ++++
Makefile | 62 +++-
builtin-clone.c | 6 +-
builtin-fetch.c | 19 +-
builtin-ls-remote.c | 4 +-
builtin-push.c | 54 ++-
configure.ac | 3 +
git-remote-cvs.py | 696 ++++++++++++++++++++++++++
git.c | 3 -
git_vcs_cvs/.gitignore | 2 +
git_vcs_cvs/Makefile | 27 +
git_vcs_cvs/changeset.py | 114 +++++
git_vcs_cvs/commit_states.py | 52 ++
git_vcs_cvs/cvs.py | 884 ++++++++++++++++++++++++++++++++++
git_vcs_cvs/cvs_revision_map.py | 367 ++++++++++++++
git_vcs_cvs/cvs_symbol_cache.py | 283 +++++++++++
git_vcs_cvs/git.py | 591 +++++++++++++++++++++++
git_vcs_cvs/setup.py | 12 +
git_vcs_cvs/util.py | 147 ++++++
builtin-http-fetch.c => http-fetch.c | 5 +-
remote-curl.c | 139 ++++++
remote.c | 15 +-
remote.h | 2 +
t/t9800-foreign-vcs-cvs-basic.sh | 520 ++++++++++++++++++++
t/t9801-foreign-vcs-cvs-fetch.sh | 291 +++++++++++
t/test-lib.sh | 1 +
transport-helper.c | 246 ++++++++++
transport.c | 157 +------
transport.h | 44 ++-
31 files changed, 4741 insertions(+), 185 deletions(-)
create mode 100644 Documentation/git-remote-helpers.txt
create mode 100644 Documentation/git-vcs-cvs.txt
create mode 100755 git-remote-cvs.py
create mode 100644 git_vcs_cvs/.gitignore
create mode 100644 git_vcs_cvs/Makefile
create mode 100644 git_vcs_cvs/__init__.py
create mode 100644 git_vcs_cvs/changeset.py
create mode 100644 git_vcs_cvs/commit_states.py
create mode 100644 git_vcs_cvs/cvs.py
create mode 100644 git_vcs_cvs/cvs_revision_map.py
create mode 100644 git_vcs_cvs/cvs_symbol_cache.py
create mode 100644 git_vcs_cvs/git.py
create mode 100644 git_vcs_cvs/setup.py
create mode 100644 git_vcs_cvs/util.py
rename builtin-http-fetch.c => http-fetch.c (95%)
create mode 100644 remote-curl.c
create mode 100755 t/t9800-foreign-vcs-cvs-basic.sh
create mode 100755 t/t9801-foreign-vcs-cvs-fetch.sh
create mode 100644 transport-helper.c
next reply other threads:[~2009-08-05 5:01 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-08-05 5:01 Daniel Barkalow [this message]
2009-08-05 9:11 ` [PATCH 00/13] Native and foreign helpers Bert Wesarg
2009-08-05 14:57 ` Daniel Barkalow
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=alpine.LNX.2.00.0908050052390.2147@iabervon.org \
--to=barkalow@iabervon.org \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=johan@herland.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).