[WIP] SubGit support
Review Request #7078 — Created March 18, 2015 and discarded — Latest diff uploaded
RBTools currently supports interacting with reviews from a git-svn clone; it jumps through some hoops specific to git-svn to make everything happy from the perspective of the ReviewBoard API and backend SVN repo. However, it has no such support for SubGit, which is (IMHO) a far superior translation tool. This PR aims to provide that support, so that "rbt post" and other operations Just Work™ when the local git repo is a clone of a SubGit mirror.
Assuming that you have a setup like this:
[subgit-server] $ subgit configure --svn-url svn+ssh://svn.example.com/path/to/repo ./repo.git [subgit-server] $ $EDITOR repo.git/subgit/config repo.git/subgit/authors.txt [subgit-server] $ subgit install ./repo.git [some-client] $ git clone ssh://subgit-server.example.com/repo.git
the following commands should work:
[some-client] $ cd repo.git [some-client] $ gco feature/awesome [some-client] $ rbt diff [some-client] $ rbt post [some-client] $ gco feature/depends_on_awesome [some-client] $ rbt post --parent feature/awesome
and possibly others, but that is most of my workflow (besides adding backend-agnostic options to the above commands, such as --diff-only or --change-description, etc).
This PR is currently mostly for discussion value, as there are some significant known limitations:
1) No tests (yet).
- There were also no tests for git-svn when I started
- I plan to run my new (forthcoming) tests against both kinds of translation2) Requires SSH access to the SubGit mirror host.
- RBTools must inspect the SubGit configuration to determine the SVN URL.
- There's a git config option you can set to specify it explicitly, but this is not currently documented, and it should probably be a .reviewboardrc option instead.3) It's obviously way behind master. I will rebase and re-verify once I have a bunch of tests.
Also inviting the SubGit folks to participate in this discussion.
No unit tests yet (see above), but I use it for my day-to-day development and code review. I've been using the current version for a month or two without any problems (especially since the most recent commits in which I fixed a bug with --parent).