> From: dhruva <dhruva@ymail.com>
> To: Simon Hausmann <simon@lst.de>
> Cc: GIT SCM <git@vger.kernel.org>; Jing Xue <jingxue@digizenstudio.com>
> Sent: Wednesday, 10 September, 2008 10:48:23 AM
> Subject: Re: PATCH: git-p4 optional handling of RCS keywords [was: Re: git-p4 and keyword expansion]
>
> My earlier patch has an error... (I have almost always stumbled on first patch!)
>
> here is the fixed one:
>
> diff --git a/contrib/fast-import/git-p4 b/contrib/fast-import/git-p4
> index 2216cac..c67b2e5 100755
> --- a/contrib/fast-import/git-p4
> +++ b/contrib/fast-import/git-p4
> @@ -16,6 +16,9 @@ from sets import Set;
>
> verbose = False
>
> +# Handling of RCS keyowrds. To ensure backward compatibility, the default
> +# is to strip keywords. Default behavior is controlled here
> +kwstrip = True
>
> def p4_build_cmd(cmd):
> """Build a suitable p4 command line.
> @@ -975,10 +978,11 @@ class P4Sync(Command):
> sys.stderr.write("p4 print fails with: %s\n" % repr(stat))
> continue
>
> - if stat['type'] in ('text+ko', 'unicode+ko', 'binary+ko'):
> - text = re.sub(r'(?i)$(Id|Header):[^$]*$',r'$$', text)
> - elif stat['type'] in ('text+k', 'ktext', 'kxtext', 'unicode+k',
> 'binary+k'):
> - text =
> re.sub(r'$(Id|Header|Author|Date|DateTime|Change|File|Revision):[^$]*$',r'$$',
> text)
> + if kwstrip:
> + if stat['type'] in ('text+ko', 'unicode+ko', 'binary+ko'):
> + text = re.sub(r'(?i)$(Id|Header):[^$]*$',r'$$', text)
> + elif stat['type'] in ('text+k', 'ktext', 'kxtext', 'unicode+k',
> 'binary+k'):
> + text =
> re.sub(r'$(Id|Header|Author|Date|DateTime|Change|File|Revision):[^$]*$',r'$$',
> text)
>
> contents[stat['depotFile']] = text
>
> @@ -1850,6 +1854,16 @@ def main():
> (cmd, args) = parser.parse_args(sys.argv[2:], cmd);
> global verbose
> verbose = cmd.verbose
> +
> + global kwstrip
> + kwval = gitConfig("git-p4.kwstrip")
> + if len(kwval) > 0:
> + kwval = kwval.lower();
> + if "false" == kwval:
> + kwstrip = False
> + elif "true" == kwval:
> + kwstrip = True
> +
> if cmd.needsGit:
> if cmd.gitdir == None:
> cmd.gitdir = os.path.abspath(".git")
>
>
>
> -dhruva
>
>
> ----- Original Message ----
> > From: dhruva
> > To: Simon Hausmann
> > Cc: GIT SCM ; Jing Xue
> > Sent: Wednesday, 10 September, 2008 10:43:26 AM
> > Subject: PATCH: git-p4 optional handling of RCS keywords [was: Re: git-p4 and
> keyword expansion]
> >
> > Hello,
> > I would like to submit my first patch to the git community.
> >
> > I have introduced a new configuration option to 'git-p4' "kwstrip". If
> enabled,
> > the RCS keywords gets unexpanded like it is done with out the patch and
> > disabling it explicitly retains the RCS keywords as in the original p4 source.
>
> > The default (in the absence) is 'false' to ensure backward compatibility. To
> > override, you can put the following lines in your '.gitconfig' file..
> >
> > [git-p4]
> > kwstrip = false
> >
> >
> >
> > The patch to git-p4 (based on origin/next branch):
> >
> > diff --git a/contrib/fast-import/git-p4 b/contrib/fast-import/git-p4
> > index 2216cac..ad37d0b 100755
> > --- a/contrib/fast-import/git-p4
> > +++ b/contrib/fast-import/git-p4
> > @@ -16,6 +16,9 @@ from sets import Set;
> >
> > verbose = False
> >
> > +# Handling of RCS keyowrds. To ensure backward compatibility, the default
> > +# is to strip keywords. Default behavior is controlled here
> > +kwstrip = True
> >
> > def p4_build_cmd(cmd):
> > """Build a suitable p4 command line.
> > @@ -975,10 +978,11 @@ class P4Sync(Command):
> > sys.stderr.write("p4 print fails with: %s\n" % repr(stat))
> > continue
> >
> > - if stat['type'] in ('text+ko', 'unicode+ko', 'binary+ko'):
> > - text = re.sub(r'(?i)$(Id|Header):[^$]*$',r'$$', text)
> > - elif stat['type'] in ('text+k', 'ktext', 'kxtext', 'unicode+k',
> > 'binary+k'):
> > - text =
> >
> re.sub(r'$(Id|Header|Author|Date|DateTime|Change|File|Revision):[^$]*$',r'$$',
>
> > text)
> > + if kwstrip:
> > + if stat['type'] in ('text+ko', 'unicode+ko', 'binary+ko'):
> > + text = re.sub(r'(?i)$(Id|Header):[^$]*$',r'$$', text)
> > + elif stat['type'] in ('text+k', 'ktext', 'kxtext',
> 'unicode+k',
> > 'binary+k'):
> > + text =
> >
> re.sub(r'$(Id|Header|Author|Date|DateTime|Change|File|Revision):[^$]*$',r'$$',
>
> > text)
> >
> > contents[stat['depotFile']] = text
> >
> > @@ -1850,6 +1854,16 @@ def main():
> > (cmd, args) = parser..parse_args(sys..argv[2:], cmd);
> > global verbose
> > verbose = cmd.verbose
> > +
> > + global kwstrip
> > + kwval = gitConfig("git-p4.kwstrip")
> > + if len(kwval) > 0:
> > + kwval = kwval.lower();
> > + if "false" == kwval:
> > + kwstrip = False
> > + else if "true" == kwval:
> > + kwstrip = True
> > +
> > if cmd.needsGit:
> > if cmd.gitdir == None:
> > cmd.gitdir = os.path.abspath(".git")
> >
> >
> >
> > ----- Original Message ----
> > > From: Jing Xue
> > > To: dhruva
> > > Cc: GIT SCM
> > > Sent: Tuesday, 9 September, 2008 11:08:48 PM
> > > Subject: Re: git-p4 and keyword expansion
> > >
> > > On Tue, Sep 09, 2008 at 04:44:11PM +0530, dhruva wrote:
> > > > Hello,
> > >
> > > Hi,
> > >
> > > > I feel the configuration must be set the first time only, when you
> > > > clone using 'git-p4 clone'. Altering it in between will be very
> > > > confusing!
> > > > Ideally, the setting must be transferred when the git repo
> > > > (cloned from git-p4) is cloned using standard git. Is it something
> > > > possible (well, I am new to git and am exploring. Any extra
> > > > information would help).
> > > >
> > > > My proposal is as follows:
> > > > 1. Add an extra command line argument to 'git-p4 clone' to either
> > > > enable/disable keyword expansion
> > > > 2. Store that information under the .git folder in a file that is
> > > > copied when someone clones that repo
> > > > 3. Use the stored information in future 'git-p4 sync/rebase'
> > >
> > > Any way to make it optional would be welcome by me.
> >
> > Done
> >
> >
> > > If you do come up with a "formal" patch, you might want to
> > > explicitly add Simon Hausmann to the To list, for he's the git-p4
> > > author.
> >
> > Done
> >
> > -dhruva
> >
> >
> >
> > Add more friends to your messenger and enjoy! Go to
> >
http://in.messenger.yahoo.com/invite/
> >
> > --
> > To unsubscribe from this list: send the line "unsubscribe git" in
> > the body of a message to
majordomo@vger.kernel.org
> > More majordomo info at
http://vger.kernel.org/majordomo-info.html
>
>
>
> Unlimited freedom, unlimited storage. Get it now, on
>
http://help.yahoo.com/l/in/yahoo/mail/yahoomail/tools/tools-08.html/