From: Eric Wong <normalperson@yhbt.net>
To: Martin Langhoff <martin.langhoff@gmail.com>
Cc: git list <git@vger.kernel.org>
Subject: Re: [PATCH] archimport improvements
Date: Sat, 12 Nov 2005 12:21:51 -0800 [thread overview]
Message-ID: <20051112202150.GA2037@Muzzle> (raw)
In-Reply-To: <46a038f90511120354n4584aedfhb1f2928ac41478ab@mail.gmail.com>
Martin Langhoff <martin.langhoff@gmail.com> wrote:
> Eric,
>
>
> On 11/12/05, Eric Wong <normalperson@yhbt.net> wrote:
> > I'm another Arch-user trying out git. Unfortunately, I encountered
> > several problems with git-archimport that I needed fixed before my
> > development trees could be imported into git.
>
> Welcome and good stuff! I'll give your patches a try when I sober up.
> In the meantime, some notes after having read the patches a bit...
>
> > Bug Fixes:
> >
> > * Support for '--branch'-less Arch version names.
> > Encoding '/' to '--' (as was previously done) is not 100% reversable
> > because the "--branch" portion of an fully-qualified Arch version name
> > is optional (though not many people or Arch-related tools know this).
> >
> > * I'm encoding the '/' in the fully-qualified name as ',' to not confuse
> > other porcelains, but leaving '/' in branch names may be alright
> > provided porcelains can support them.
> >
> > * Identify git branches as an Arch "archive,category<--branch>--version"
> > Anything less than that is ambiguous as far as history and patch
> > relationships go.
>
> These bug/sanity fixes are _good_. As you mention, I wasn't aware that
> patchnames could show up not having a --branch part. Tricky...
Thanks. I got lazy one day and started ignoring --branch on some of my
personal projects to save my fingers :)
> > * Renamed directories containing renamed/moved files inside didn't get
> > tracked properly. The original code was inadequate for this, and
> > making it support all rename cases that Arch supports is too much
> > work. Instead, I maintain full-blown Arch trees in the temp dir and
> > replay patches + rsync based on that. Performance is slightly slower
> > than before, but accuracy is more important to me.
> >
> > * Permission (execute bit only because of git) tracking as a side effect
> > of the above.
>
> Hmmm. I understand what you are doing, but I'm not sure we'd want to
> replace the current code with this strategy. Importing large trees
> with hundreds (thousands) of commits is so slow it is just a no go.
> Renames are described quite well in the 'commit log', and the current
> code does handle file renames...
Untouched files inside renamed directories aren't explicitly tracked.
Renamed directories are especially a pain when a renamed one contains
sub-directories that are also renamed.
> > * Tracking changes from branches that are only cherry-picked now works
>
> Can you elaborate a bit more on this?
Basically, don't die when merge-base fails, look a few lines down.
> > * Pika-escaped filenames unhandled. This seems fixed in the latest
> > git, but I fixed it more generally and removed the ShellQuote module
> > dependency along the way.
>
> Yes, this got fixed recently. Your change here goes together with the
> 'tla get' + rsync strategy which I'm not sure about.
>
> > * Don't die() when a merge-base can't be found. Arch supports
> > merging between unrelated trees.
>
> Fair enough. Does it result on a good graft in git?
Right now I end up with separate branches that are imported (according
to git-branch) but the git-log and gitk don't seem to to show
relationships between the unrelated trees. I think find_parents()
may need to use an alternate strategy instead of warning and skipping
if a merge-base can't be found.
> > Usability enhancements:
> >
> > * Optionally detect merged branches and attempt to import their history,
> > too. Use the -D <depth> option for this. Specifying a <depth>
> > greater than 1 is usually not needed unless the tree you're tracking
> > has had history pruned.
> >
> > * Optionally attempt to auto-register unknown Arch archives from
> > mirrors.sourcecontrol.net to pull their history with the -a (boolean)
> > switch. Not sure how useful users will find this.
>
> Those two are interesting!
>
> > * Removed -A <archive> usage (unnecessary in all cases) and made all
> > Arch calls and output parsing to be compatible with both tla (tested
> > 1.3.3) and baz (1.4.2). Default is still tla, but the ARCH_CLIENT
> > environment variable may be changed to baz.
>
> That's excellent -- thanks!
>
> > Current weaknesses:
> >
> > * (Present in the original code as well).
> > The code still assumes that dates in commit logs can be trusted, which is
> > fine in most cases, but a wayward branch can screw up git-archimport and
> > cause parents to be missed.
>
> Fair enough. You mention an alternative strategy (tla ancestry) --
> have you tried it at all?
No, not yet.
--
Eric Wong
next prev parent reply other threads:[~2005-11-12 20:23 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-11-12 9:23 [PATCH] archimport improvements Eric Wong
2005-11-12 9:25 ` [PATCH 1/5] remove shellquote usage for tags Eric Wong
2005-11-12 9:27 ` [PATCH 2/5] archimport: don't die on merge-base failure Eric Wong
2005-11-12 9:29 ` [PATCH 3/5] Disambiguate the term 'branch' in Arch vs git Eric Wong
2005-11-12 9:30 ` [PATCH 4/5] Overhaul of changeset application Eric Wong
2005-11-12 9:32 ` [PATCH 5/5] -D <depth> option to recurse into merged branches Eric Wong
2005-11-14 2:01 ` Eric Wong
2005-11-12 12:07 ` [PATCH 4/5] Overhaul of changeset application Martin Langhoff
2005-11-12 20:49 ` Eric Wong
2005-11-12 11:54 ` [PATCH] archimport improvements Martin Langhoff
2005-11-12 20:21 ` Eric Wong [this message]
2005-11-14 22:38 ` Martin Langhoff
2005-11-15 8:03 ` Eric Wong
2005-11-15 8:05 ` [PATCH 1/2] archimport: allow for old style branch and public tag names Eric Wong
2005-11-15 8:06 ` [PATCH 2/2] archimport: sync_to_ps() messages for tracking tla methods Eric Wong
2005-11-15 8:07 ` [PATCH 1/2] archimport: allow for old style branch and public tag names Eric Wong
2005-11-17 9:26 ` [PATCH] archimport improvements Martin Langhoff
2005-11-24 7:46 ` Eric Wong
2005-11-24 7:47 ` [PATCH 1/9] archimport: first, make sure it still compiles Eric Wong
2005-11-24 7:48 ` [PATCH 2/9] remove String::ShellQuote dependency Eric Wong
2005-11-24 7:50 ` [PATCH 3/9] fix -t tmpdir switch Eric Wong
2005-11-24 7:51 ` [PATCH 4/9] remove git wrapper dependency Eric Wong
2005-11-24 7:52 ` [PATCH 5/9] add -D <depth> and -a switch Eric Wong
2005-11-24 7:53 ` [PATCH 6/9] safer log file parsing Eric Wong
2005-11-24 7:55 ` [PATCH 7/9] Add the accurate changeset applyer Eric Wong
2005-11-24 7:56 ` [PATCH 8/9] Fix a bug I introduced in the new log parser Eric Wong
2005-11-24 7:58 ` [PATCH 9/9] fix a in new changeset applyer addition Eric Wong
2005-11-27 4:24 ` [PATCH 7/9] Add the accurate changeset applyer Martin Langhoff
2005-11-27 5:43 ` Eric Wong
2005-12-01 17:02 ` Martin Langhoff
2005-12-03 2:51 ` Eric Wong
2005-12-05 18:53 ` Martin Langhoff
2005-11-24 8:20 ` [PATCH 4/9] remove git wrapper dependency Andreas Ericsson
2005-11-24 8:35 ` Junio C Hamano
2005-11-24 8:50 ` Eric Wong
2005-11-24 18:54 ` [PATCH 1/9] archimport: first, make sure it still compiles Linus Torvalds
2005-11-26 10:51 ` Martin Langhoff
2005-11-26 20:43 ` Eric Wong
2005-11-24 9:25 ` [PATCH] archimport improvements Martin Langhoff
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=20051112202150.GA2037@Muzzle \
--to=normalperson@yhbt.net \
--cc=git@vger.kernel.org \
--cc=martin.langhoff@gmail.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).