summary |
shortlog | log |
commit |
commitdiff |
tree
first ⋅ prev ⋅ next
Giuseppe Bilotta [Wed, 12 Jan 2011 13:09:33 +0000 (14:09 +0100)]
ruby 1.9: Array#to_s != Array#join
Since Ruby 1.9, Array#to_s maps to #inspect of #join, so just use #join,
as it works in both.
Giuseppe Bilotta [Wed, 12 Jan 2011 13:05:39 +0000 (14:05 +0100)]
ruby 1.9: open RCS file with ASCII-8BIT encoding
Giuseppe Bilotta [Sun, 14 Nov 2010 08:58:37 +0000 (09:58 +0100)]
Mark TODO about commitid
Apparently, RCS 5.8 and later are going to support commitid (from CVS).
Consider adding this to rcs-fast-export too as it would make life
easier for us.
Giuseppe Bilotta [Fri, 15 Oct 2010 22:35:25 +0000 (00:35 +0200)]
Suggest a simple "git reset" after import
This is much safer than git reset --hard as it doesn't overwriter local
changes that might be present.
Giuseppe Bilotta [Wed, 13 Oct 2010 21:22:36 +0000 (23:22 +0200)]
Always coalesce commits if symbols lists are subsets
Commit coalescing is now skipped only if each symbol list has an item
which is not in the other, and --no-symbol-check overrides this. To
speed things up in this sense, the symbols list is now a Set instead of
an Array.
Add some related TODOs and rewrite the warning messages too.
Giuseppe Bilotta [Tue, 12 Oct 2010 23:21:21 +0000 (01:21 +0200)]
Option to coalesce commits with differing symbol lists
Giuseppe Bilotta [Tue, 12 Oct 2010 20:00:19 +0000 (22:00 +0200)]
Small help text rewording
Eric S. Raymond [Tue, 12 Oct 2010 17:40:55 +0000 (13:40 -0400)]
Typo fixes and documentation improvements.
Giuseppe Bilotta [Sun, 25 Jul 2010 18:20:29 +0000 (20:20 +0200)]
Handle fuzzy coalescing errors
Detect failures to coalesce commits fuzzily and inform the user without
crashing.
Giuseppe Bilotta [Sun, 25 Jul 2010 15:53:11 +0000 (17:53 +0200)]
Atomic merges
Move the tree-merging method to Tree, and make it atomic: if merging
fails, the tree is not updated. Since the error propagates up, and the
tree merge is the first step of a commit merge, commit merges are atomic
too.
Giuseppe Bilotta [Mon, 28 Jun 2010 14:20:05 +0000 (16:20 +0200)]
Skip unhandled commands correctly
Commands such as access can be multi-line, so keep skipping until we come
across the terminating semicolon.
Ben Martin [Mon, 21 Jun 2010 14:13:17 +0000 (10:13 -0400)]
Fixed bug when binary file changed in RCS.
If the RCS file being tracked is missing a final new-line character, the
program would crash whenever the last line was deleted and then added.
Reproduction steps:
mkdir /tmp/bug_demo && cd /tmp/bug_demo
rcs -i foo.txt
echo -n "foo" > foo.txt
ci foo.txt
co -l foo.txt
echo -n "d" >> foo.txt
ci foo.txt
git init
~/bin/rcs-fast-export.rb foo.txt,v
Ben Martin [Mon, 21 Jun 2010 14:08:49 +0000 (10:08 -0400)]
Added 'expand' to the list of known but unhandled RCS commands.
Giuseppe Bilotta [Tue, 13 Apr 2010 21:21:38 +0000 (23:21 +0200)]
Proper file modes
Giuseppe Bilotta [Tue, 13 Apr 2010 21:15:38 +0000 (23:15 +0200)]
Preliminary support for full-repo export
Giuseppe Bilotta [Tue, 13 Apr 2010 08:58:55 +0000 (10:58 +0200)]
Improve parsing
Some (older?) RCS files have a more lax syntax (e.g. symbols in the same line
as the symbols command itself, multiple symbols per line, etc). Handle this
situation, and take the change to give the parser an overall cleaner approach.
In particular, tell apart unsupported (skipped) commands from unknown ones (abort).
Giuseppe Bilotta [Wed, 12 Aug 2009 09:31:16 +0000 (11:31 +0200)]
Import entire directories
It is now possible to specify directories instead of files, in which
case the directory structure is descended, importing all RCS-tracked
files, considered with their path relative to the specified directory.
Feature suggested in private communication by David Kettler.
Giuseppe Bilotta [Wed, 12 Aug 2009 08:27:46 +0000 (10:27 +0200)]
Option to prepend filenames to commit logs
Feature suggested in private comunication by David Kettler.
Giuseppe Bilotta [Sat, 4 Apr 2009 09:20:40 +0000 (11:20 +0200)]
Suppress two more warnings
* parenthesize an Array explosion
* define :date as an attribute reader since we're going to define the
:date= writer ourselves
Ben Jackson [Fri, 3 Apr 2009 22:20:48 +0000 (15:20 -0700)]
Fix warning about missing parens around arg
Giuseppe Bilotta [Sat, 4 Apr 2009 08:47:24 +0000 (10:47 +0200)]
Backport Integer#odd? to older Ruby versions
As pointed out by a private communication from Ben Jackson, Integer#odd?
was introduced in Ruby 1.8.7; to make the script runnable on older Ruby
versions, we define the method ourselves if it's missing.
Giuseppe Bilotta [Sat, 28 Mar 2009 00:05:04 +0000 (01:05 +0100)]
Fix diff index handling
Inserting text at index 0 (a0 N command, to prepend N lines) resulted in
text being appended since the diff index 0 was mapped to Ruby index -1.
The solution is to turn insertions into Array#unshift rather than
Array#<<, so that they can use the same index as the diff, and only
decrementing the diff index for deletions.
Giuseppe Bilotta [Fri, 27 Mar 2009 23:44:11 +0000 (00:44 +0100)]
Build buffer as an array of arrays
Sanitizing the buffer by splitting buffer entries at newlines causes the
newlines to disappear. A much cleaner solution, which doesn't have this
serious bug, is to turn the buffer into a buffer of arrays of strings,
to be flattened right before the final assignment.
Giuseppe Bilotta [Thu, 26 Mar 2009 07:52:32 +0000 (08:52 +0100)]
sanitize buffer after ranges of additions
When adding a range of lines, they would be added as a single string
with embedded newlines so as to preserve line indices for subsequent
insertions/deletions. However, such lines need to be split before
loading them into the next revision text buffer, to ensure that
revisions using the new one as diff base find the correct lines.
Giuseppe Bilotta [Thu, 26 Mar 2009 00:34:41 +0000 (01:34 +0100)]
Export all branches for each revision
Giuseppe Bilotta [Thu, 26 Mar 2009 00:27:51 +0000 (01:27 +0100)]
Handle symbolic heads
RCS files can contain symbols that don't point to an actual commit;
checking out these symbols retrieves the highest revision with matching
major numbers. Fo example, with symbol SYM:3 and revisions 2.1, 3.1,
3.2, 4.1, checking out SYM results in 3.2 being checked out.
This feature translates pretty straightforwardly to git heads. These
symbols are detected by their missing date and are deleted after
assigning their name as branch to the appropriate revision.
Giuseppe Bilotta [Tue, 18 Nov 2008 00:00:14 +0000 (01:00 +0100)]
Try to guess the user's name and email
A common use case for RCS fast export is likely to be of a user trying to
convert its RCS histories into git histories. In these cases we don't need an
authors file, since the committer full name and email are information likely
to be found elsewhere.
We look at the git config, but also the gecos entry in the passwd file. As
extreme resources we also peek in their .hgrc and .vimrc files
Giuseppe Bilotta [Mon, 17 Nov 2008 22:17:10 +0000 (23:17 +0100)]
Document config options in usage
Giuseppe Bilotta [Mon, 17 Nov 2008 22:15:23 +0000 (23:15 +0100)]
Also read config option rcs.tageachrev
Giuseppe Bilotta [Mon, 17 Nov 2008 22:12:12 +0000 (23:12 +0100)]
Config before command line
Giuseppe Bilotta [Mon, 17 Nov 2008 22:09:43 +0000 (23:09 +0100)]
Improve usage
Giuseppe Bilotta [Mon, 17 Nov 2008 21:59:28 +0000 (22:59 +0100)]
Expand authorsfile path
Giuseppe Bilotta [Mon, 17 Nov 2008 21:58:59 +0000 (22:58 +0100)]
Also read config option rcs.authorsfile
Giuseppe Bilotta [Mon, 17 Nov 2008 21:45:03 +0000 (22:45 +0100)]
Implement --authors-file option
Giuseppe Bilotta [Mon, 17 Nov 2008 21:32:01 +0000 (22:32 +0100)]
Implement --tag-each-rev option
Giuseppe Bilotta [Mon, 17 Nov 2008 20:51:50 +0000 (21:51 +0100)]
Options infrastructure
Giuseppe Bilotta [Mon, 17 Nov 2008 19:47:07 +0000 (20:47 +0100)]
Import RCS symbols as lightweight git tags
Giuseppe Bilotta [Mon, 17 Nov 2008 18:35:13 +0000 (19:35 +0100)]
Fix branch names
Giuseppe Bilotta [Sat, 15 Nov 2008 02:11:31 +0000 (03:11 +0100)]
Initial commit