From: Johan Herland <johan@herland.net>
To: git@vger.kernel.org
Cc: Johan Herland <johan@herland.net>,
barkalow@iabervon.org, gitster@pobox.com
Subject: [RFC 00/11] Foreign VCS helper program for CVS repositories
Date: Mon, 27 Jul 2009 03:04:08 +0200 [thread overview]
Message-ID: <1248656659-21415-1-git-send-email-johan@herland.net> (raw)
This series is a first draft towards implementing a foreign VCS helper
program for CVS.
It is based on the 'db/foreign-scm' and 'jh/notes' topics in 'pu'. As such,
this patch series should apply cleanly to current 'pu'.
The first 4 patches supply the necessary parts of Daniel Barkalow's
foreign-scm topic that has not yet been merged to 'pu' (i.e. everything
remaining in Daniel's original patch series, except the p4-specific stuff).
The next 2 patches add some functionality to git fast-import, for
facilitating the import of 'notes' objects (this is a _much_ faster way to
generate/import notes than invoking "git notes edit -m MSG" for each note).
Next, there are 3 patches tweaking and expanding the git-vcs API (with
corresponding implementations in the foreign transport code) to adjust for
the CVS helper's needs.
The final 2 patches add the git-vcs-cvs helper program that implements the
fetch/import of objects from a local or remote CVS repository, along with
selftests for verifying its correctness in some simple cases. This is a
first RFC/draft of this helper program, and will hopefully grow along with
the foreign-scm feature itself until it provides a compelling alternative
to "git cvsimport" and "git cvsexportcommit".
Daniel Barkalow (4):
Add specification of git-vcs-* helper programs
Use a function to determine whether a remote is valid
Allow programs to not depend on remotes having urls
Add a transport implementation using git-vcs-* helpers
Johan Herland (7):
Refactor path name parsing into new function: get_path_str()
Add support for mark references as path names
Preliminary clarifications to git-vcs documentation
Teach foreign transport code to perform the "capabilities" command
Introduce a 'marks <filename>' feature to the foreign transport code
First draft of CVS importer using the foreign-scm machinery
Add simple test cases of git-vcs-cvs functionality
Documentation/git-fast-import.txt | 9 +-
Documentation/git-vcs-cvs.txt | 85 ++++
Documentation/git-vcs.txt | 88 ++++
Makefile | 47 ++
builtin-fetch.c | 19 +-
builtin-ls-remote.c | 4 +-
builtin-push.c | 54 ++-
configure.ac | 3 +
fast-import.c | 71 ++--
git-vcs-cvs.py | 697 +++++++++++++++++++++++++++++
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 | 588 ++++++++++++++++++++++++
git_vcs_cvs/setup.py | 12 +
git_vcs_cvs/util.py | 147 ++++++
remote.c | 13 +-
t/t9800-foreign-vcs-cvs-basic.sh | 518 ++++++++++++++++++++++
t/t9801-foreign-vcs-cvs-fetch.sh | 291 ++++++++++++
t/test-lib.sh | 1 +
transport-foreign.c | 271 ++++++++++++
transport.c | 4 +
transport.h | 1 +
27 files changed, 4588 insertions(+), 64 deletions(-)
create mode 100644 Documentation/git-vcs-cvs.txt
create mode 100644 Documentation/git-vcs.txt
create mode 100755 git-vcs-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
create mode 100755 t/t9800-foreign-vcs-cvs-basic.sh
create mode 100755 t/t9801-foreign-vcs-cvs-fetch.sh
create mode 100644 transport-foreign.c
Have fun! :)
...Johan
next reply other threads:[~2009-07-27 1:05 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-07-27 1:04 Johan Herland [this message]
2009-07-27 1:04 ` [RFC 01/11] Add specification of git-vcs-* helper programs Johan Herland
2009-07-27 1:04 ` [RFC 02/11] Use a function to determine whether a remote is valid Johan Herland
2009-07-27 1:04 ` [RFC 03/11] Allow programs to not depend on remotes having urls Johan Herland
2009-07-27 18:55 ` Junio C Hamano
2009-07-27 19:33 ` Daniel Barkalow
2009-07-29 8:57 ` Alex Riesen
2009-07-30 0:24 ` Johan Herland
2009-07-27 1:04 ` [RFC 04/11] Add a transport implementation using git-vcs-* helpers Johan Herland
2009-07-27 1:04 ` [RFC 05/11] Refactor path name parsing into new function: get_path_str() Johan Herland
2009-07-27 1:04 ` [RFC 06/11] Add support for mark references as path names Johan Herland
2009-07-27 14:12 ` Shawn O. Pearce
2009-07-27 18:26 ` Johan Herland
2009-07-27 18:35 ` Shawn O. Pearce
2009-07-28 1:43 ` [RFC 06/11 v2] fast-import: Add support for importing commit notes Johan Herland
2009-07-29 2:18 ` Junio C Hamano
2009-07-29 2:41 ` Johan Herland
2009-07-29 14:26 ` Shawn O. Pearce
2009-07-29 16:20 ` Junio C Hamano
2009-07-30 0:29 ` Johan Herland
2009-07-30 2:35 ` Junio C Hamano
2009-07-29 18:56 ` Junio C Hamano
2009-07-29 23:08 ` Johan Herland
2009-07-27 1:04 ` [RFC 07/11] Preliminary clarifications to git-vcs documentation Johan Herland
2009-07-27 1:04 ` [RFC 08/11] Teach foreign transport code to perform the "capabilities" command Johan Herland
2009-07-27 1:04 ` [RFC 09/11] Introduce a 'marks <filename>' feature to the foreign transport code Johan Herland
2009-07-27 1:04 ` [RFC 11/11] Add simple test cases of git-vcs-cvs functionality Johan Herland
2009-07-27 17:27 ` [RFC 00/11] Foreign VCS helper program for CVS repositories Daniel Barkalow
2009-07-27 18:11 ` Johan Herland
2009-07-27 18:58 ` 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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1248656659-21415-1-git-send-email-johan@herland.net \
--to=johan@herland.net \
--cc=barkalow@iabervon.org \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
/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.
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 NNTP newsgroup(s).