Maxim Dounin <mdounin@mdounin.ru> [Fri, 11 Jan 2008 06:07:43 +0300] rev 5832
convert: add commandline.xargs(), use it in svn_sink class
Introduce commandline.xargs() to limit argument list with respect
to ARG_MAX bytes. If no ARG_MAX information available - use POSIX
required minimum of 4096 bytes.
Under Windows, while actual argument list length is limited to 32k,
shells impose their own limits on command line length, down to 2047 bytes
for cmd.exe under Windows NT/2k and about 2500 bytes for older 4nt.exe.
See http://support.microsoft.com/kb/830473 for details about cmd.exe
limitations.
Since ARG_MAX is limit for argument list and environment, we reserve half
of it and one byte for environment variables. This way with default ARG_MAX
(4096 bytes) we get value 2047 bytes which is OK for Windows too.
Christian Ebert <blacktrash@gmx.net> [Fri, 11 Jan 2008 15:01:29 +0100] rev 5831
keyword: fix some doc strings; update copyright
Kirill Smelkov <kirr@mns.spb.ru> [Thu, 10 Jan 2008 12:07:18 +0300] rev 5830
hg qrecord -- like record, but for mq
I'm a former Darcs user, and I've discovered that it is very convenient to
actually perform development using MQ first, and only when the patches are
'ready' move them to project's history in stone.
Usually I work on some topic, temporarily forgetting about any version control,
and just do coding, experimenting, debugging, etc.
After some time, I approach a moment, where my work should actually go to
patches/commits, and here is the problem::
As it is now, there is no way to put part of the changes into one patch,
and another part of the changes into second patch.
This works, but only when changes are touching separate files, and for
semantically different changes touching the same file(s) there is now
pretty way to put them into separate patches.
For some time, I've tolerated the pain to run vim patches/... and move hunks
between files by hand, but I think this affects my productivity badly.
So, here is the first step towards untiing the problem:
Let's use 'hg qrecord' for mq, like we use 'hg record' for usual commits!
Kirill Smelkov <kirr@mns.spb.ru> [Thu, 10 Jan 2008 12:07:18 +0300] rev 5829
cmdutil.commit: extract 'addremove' from opts carefully
we are going to use cmdutil.commit for qrecord, and it's brother
qrefresh does not support addremove.
Kirill Smelkov <kirr@mns.spb.ru> [Thu, 10 Jan 2008 12:07:18 +0300] rev 5828
dispatch: allow extensions to provide setup code
we'll need this soon, when record extension will optionally depend
on mq early -- when preparing cmdtable.
Also, if accepted, ExtensionHowto wiki should be updated as well.
Kirill Smelkov <kirr@mns.spb.ru> [Thu, 10 Jan 2008 12:07:13 +0300] rev 5827
record: refactor record into generic record driver
rationale
---------
I'd like to make MQ version of record -- qrecord.
>From the first glance it seemed to be easy -- the task in essence would be to
change call to cmdutil.commit() to something like mq.qrefresh().
As it turned out queue.refresh() and cmdutil.commit() have different semantics
-- cmdutil.commit() first scans for changes and then delegate the actual commit
to lowlevel func. On the other hand queue.refresh() do it all in once, and I am
a bit scary to change it.
Maybe the right way would be to first refactor queue.refresh() to use
cmdutil.commit() machinery, and then trivially adjust record, but I feel I'm
not competent for the task right now.
Instead, I propose we refactor record to be some sort of high-level driver, or
like a high-level decorator one can say, which will first interactively filter
changes, and then delegate commit job to high-level commiter, e.g. 'commit' or
'qrefresh'
So, this patch does just that -- refactor record to be generic driver, and
update 'hg record' code to use the driver.
'hg qrecord' will follow.
Kirill Smelkov <kirr@mns.spb.ru> [Thu, 10 Jan 2008 11:43:30 +0300] rev 5826
record: some docs
While studing record, I've written some docstrings and comments.
Hope they are useful.
Christian Ebert <blacktrash@gmx.net> [Wed, 09 Jan 2008 05:24:33 +0100] rev 5825
keyword: clean up quiet setting in kwdemo and adding of untracked kwfiles
Christian Ebert <blacktrash@gmx.net> [Wed, 09 Jan 2008 11:21:40 +0100] rev 5824
keyword: suppress keyword expansion for log commands
With previous bugfix "hg log -p" expanded keywords.
Turn off again by making log, tip nokwcommands.
Christian Ebert <blacktrash@gmx.net> [Wed, 09 Jan 2008 05:18:50 +0100] rev 5823
keyword: (bugfix) only set changenode for kwtemplater when committing
kwexpand must always obtain changenode from filectx,
otherwise current changenode is expanded in every file.
Also fixes "hg cat <more than 1 file>".