Re: [CFT] git-svn - almost a rewrite...

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Eric Wong <normalperson@xxxxxxxx> wrote:
> I wanted to better support multi-fetch and --follow-parent, but the

I've deprecated the names 'multi-fetch' and 'multi-init'; however the
functionality they support have been integrated into the 'init' and
'fetch' commands.

> Now git-svn uses .git/config for managing remote fetches (no wildcard
> support yet, unfortunately); making it easy to see what files.  With
> connection minimization (git-svn migrate --minimize), git-svn can now
> avoid unnecessary reconnections to repositories.

Wildcards for branches and tags are now supported.  (multi-)init -b/-t will
create something like this now:

[svn-remote "svn"]
	url = http://server.org/svn
	branches = branches/*/project-a:refs/remotes/*
	tags = tags/*/project-a:refs/remotes/tags/*
	trunk = trunk/project-a:refs/remotes/trunk

> --follow-parent is not yet the default, some more testing from others
> would be nice.  --follow-parent is now greatly improved, as it
> can follow into deleted directories as well as tracking subdirectories
> with no explicit parent at its current level.

I've made --follow-parent the default now.  --no-follow-parent reverts
back to the old default behavior.

> Sam Vilain's revprops tracking hasn't been merged yet, but I intend to
> support alternate SVN URLs/revnos from both svm:* revprops as well as
> being able to override the repository root path (file:// => http://
> for public distribution).

This is in, as is the analogous functionality for svnsync.  Please note
that these features do add some complexity to how dcommit works which
I haven't explored much of.  Perhaps Sam knows better what to do with
it.

> Repository available here, this is based against Junios git.git master:
> 
>   git://git.bogomips.org/git-svn.git
>   http://git.bogomips.org/git-svn.git
> 
> I *will* rebase the master here as I see fit...

New changes pushed out.

> To take full advantage of remote connection minimization, just run:
> "git-svn migrate --minimize" once and continue to add/edit remote
> refspecs via .git/config.
> 
> As great as these changes sound, I don't feel they bring significant
> enough improvement to risk introducing brokeness for 1.5.0.  I would
> like to wait until 1.5.0 has passed before merging into mainline.  I
> still have _not_ used this version of git-svn for any real work yet.

After a few days of dogfooding and nothing breaking; I'd say it's ready
for merging into mainline git.  One last minute change I made while
writing this announcement was supporting invocations from
subdirectories.

There's a lot of changes in here; so I don't think I'll bomb the
mailing list with 113 patches.  Feel free to fetch or clone from
the repositories given above.

Eric Wong (112):
      git-svn: move authentication prompts into their own namespace
      git-svn: cleanup: move process_rm around
      git-svn: cleanup: put SVN workarounds into their own namespace
      git-svn: cleanup: avoid re-use()ing Git.pm in sub-packages
      git-svn: add Git::SVN module (to avoid global variables)
      git-svn: convert 'init' to use Git::SVN
      git-svn: convert multi-init over to using Git::SVN
      git-svn: make multi-init capable of reusing the Ra connection
      git-svn: add a test for show-ignore
      git-svn: convert show-ignore over to Git::SVN
      git-svn: moved the 'log' command into its own namespace
      git-svn: port the 'rebuild' command to use Git::SVN objects
      git-svn: do not let Git.pm warn if we prematurely close pipes
      git-svn: convert the 'commit-diff' command to Git::SVN
      git-svn: get rid of Memoize for now...
      git-svn: fetch/multi-fetch converted over to Git::SVN module
      git-svn: switch dcommit to using Git::SVN code
      git-svn: convert 'set-tree' command to use Git::SVN
      git-svn: remove graft-branches command
      git-svn: add support for metadata in .git/config
      git-svn: fix a regression in dcommit that caused empty log messages
      git-svn: reuse open SVN::Ra connections by URL
      git-svn: enable --minimize to simplify the config and connections
      git-svn: fix --follow-parent to work with Git::SVN
      git-svn: --follow-parent works with svn-remotes multiple branches
      git-svn: disallow ambigious local refspecs
      git-svn: allow --follow-parent on deleted directories
      git-svn: get rid of additional fetch-arguments
      git-svn: allow 'init' to work outside of tests
      git-svn: better error reporting if --follow-parent fails
      git-svn: 'init' attempts to connect to the repository root if possible
      git-svn: --follow-parent now works on sub-directories of larger branches
      git-svn: track writes writes to the index in fetch
      git-svn: add an odd test case that seems to cause segfaults over HTTP
      git-svn: avoid tracking change-less revisions
      git-svn: correctly track revisions made to deleted branches
      git-svn: fix segfaults from accessing svn_log_changed_path_t
      git-svn: fix committing to subdirectories, add tests
      git-svn: avoid an extra svn_ra connection during commits
      git-svn: simplify usage of the SVN::Git::Editor interface
      git-svn: cleanup remove unused function
      git-svn: allow multi-fetch to fetch things chronologically
      git-svn: correctly track diff-less copies with do_switch
      git-svn: correctly handle do_{switch,update} in deep directories
      git-svn: stop using path names as refnames with --follow-parent
      git-svn: cleanup: move editor-specific variables into the editor namespace
      git-svn: just use Digest::MD5 instead of requiring it
      git-svn: reinstate the default SVN error handler after using get_log
      git-svn: don't rely on do_switch + reparenting with svn(+ssh)://
      git-svn: fetch tracks initial change with --follow-parent
      git-svn: remove the 'rebuild' command and make the functionality automatic
      git-svn: fix several fetch bugs related to repeated invocations
      git-svn: reinstate --no-metadata, add --svn-remote=, variable cleanups
      git-svn: gracefully handle --follow-parent failures
      git-svn: make (multi-)fetch safer but slower
      git-svn: avoid a huge memory spike with high-numbered revisions
      git-svn: re-enable repacking flags
      git-svn: do our best to ensure that our ref and rev_db are consistent
      git-svn: avoid redundant get_log calls between invocations
      git-svn: use sys* IO functions for reading rev_db
      git-svn: don't write to the config file from --follow-parent
      git-svn: save paths to tags/branches with for future reuse
      git-svn: migrations default to [svn-remote "git-svn"]
      git-svn: get rid of revisions_eq check for --follow-parent
      git-svn: avoid extra get_log calls when refspecs are added for fetching
      git-svn: just name the default svn-remote "svn" instead of "git-svn"
      git-svn: prepare multi-init for wildcard support
      git-svn: reintroduce using a single get_log() to fetch
      git-svn: run get_log() on a sub-directory if possible
      git-svn: implement auto-discovery of branches/tags
      git-svn: --follow-parent tracks multi-parent paths
      git-svn: remove check_path calls before calling do_update
      git-svn: remove some noisy debugging messages
      git-svn: enable follow-parent functionality by default
      git-svn: fix buggy regular expression usage in several places
      git-svn: correctly handle the -q flag in SVN::Git::Fetcher
      git-svn: correctly handle globs with a right-hand-side path component
      git-svn: remove optimized commit stuff for set-tree
      git-svn: add support for SVN::Mirror/svk using revprops for metadata
      git-svn: add support for per-[svn-remote "..."] options
      git-svn: use private $GIT_DIR/svn/config file more
      git-svn: extra safety for noMetadata and useSvmProps users
      git-svn: use separate, per-repository .rev_db files
      git-svn: write the highest maxRex out for branches and tags
      git-svn: handle multi-init without --trunk, UseSvmProps fixes
      git-svn: make dcommit usable for glob users
      git-svn: include merges when calling rev-list for decommit
      git-svn: usability fixes for the 'git svn log' command
      t910*: s/repo-config/config/g; poke around possible race conditions
      git-svn: hopefully make 'fetch' more user-friendly
      git-svn: allow 'init' to act as multi-init
      git-svn: brown paper bag fixes
      git-svn: simplify the (multi-)init methods of fetching
      git-svn: allow --log-window-size to be specified, default to 100
      git-svn: remember to check for clean indices on globbed refs, too
      git-svn: error checking for invalid [svn-remote "..."] sections
      git-svn: allow dcommit for those who only fetch from SVM with useSvmProps
      git-svn: documentation updates for new functionality
      git-svn: add support for --stat in the log command
      git-svn: checkout files on new fetches
      git-svn: add a 'rebase' command
      git-svn: fix some issues for people migrating from older versions
      git-svn: hide the private git-svn 'config' file as '.metadata'
      git-svn: add 'clone' command, an alias for init + fetch
      git-svn: allow overriding of the SVN repo root in metadata
      git-svn: add support for using svnsync properties
      git-svn: fix useSvmProps, hopefully for the last time
      git-svn: add test for useSvnsyncProps
      git-svn: documentation updates
      git-svn: allow metadata options to be specified with 'init' and 'clone'
      git-svn: give show-ignore HEAD smarts, like dcommit and log
      git-svn: ensure we're at the top-level and can access $GIT_DIR

sam@xxxxxxxxxx (1):
      git-svn: make test for SVK mirror path import

-- 
Eric Wong
-
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

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]