<feed xmlns='http://www.w3.org/2005/Atom'>
<title>user/sven/git.git/git-cvsimport.perl, branch v1.4.4.4</title>
<subtitle>Git
</subtitle>
<id>https://git.stealer.net/cgit.cgi/user/sven/git.git/atom?h=v1.4.4.4</id>
<link rel='self' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/atom?h=v1.4.4.4'/>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/'/>
<updated>2006-11-15T20:50:29Z</updated>
<entry>
<title>Run "git repack -a -d" once more at end, if there's 1MB or more of not-packed data.</title>
<updated>2006-11-15T20:50:29Z</updated>
<author>
<name>Jim Meyering</name>
<email>jim@meyering.net</email>
</author>
<published>2006-11-15T20:15:44Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/commit/?id=efe4abd14c75834d30e3e521b3597eb07ea9271b'/>
<id>urn:sha1:efe4abd14c75834d30e3e521b3597eb07ea9271b</id>
<content type='text'>
Although I converted upstream coreutils to git last month, I just
reconverted coreutils once again, as a test, and ended up with a
git repository of about 130MB (contrast with my packed git repo of
size 52MB).  That was because there were a lot of commits (but &lt; 1024)
after the final automatic "git-repack -a -d".

Running a final
  git-repack -a -d &amp;&amp; git-prune-packed
cut the final repository size down to the expected size.

So this looks like an easy way to improve git-cvsimport.
Just run "git repack ..." at the end if there's more than
some reasonable amount of not-packed data.

My choice of 1MB is a little arbitrarily.  I wouldn't mind missing
the minimal repo size by 1MB.  At the other end of the spectrum,
it's probably not worthwhile to pack everything when the total
repository size is less than 1MB.

Here's the patch:

Signed-off-by: Jim Meyering &lt;jim@meyering.net&gt;
Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;
</content>
</entry>
<entry>
<title>cvsimport: move over to using git-for-each-ref to read refs.</title>
<updated>2006-09-20T17:21:46Z</updated>
<author>
<name>Andy Whitcroft</name>
<email>apw@shadowen.org</email>
</author>
<published>2006-09-20T16:37:04Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/commit/?id=1f24c58724a64e7b100ae8d8e0318c9e564df88b'/>
<id>urn:sha1:1f24c58724a64e7b100ae8d8e0318c9e564df88b</id>
<content type='text'>
cvsimport opens all of the files in $GIT_DIR/refs/heads and reads
out the sha1's in order to work out what time the last commit on
that branch was made (in CVS) thus allowing incremental updates.
However, this takes no account of hierachical refs naming producing
the following error for each directory in $GIT_DIR/refs:

  Use of uninitialized value in chomp at /usr/bin/git-cvsimport line 503.
  Use of uninitialized value in concatenation (.) or string at
					/usr/bin/git-cvsimport line 505.
  usage: git-cat-file [-t|-s|-e|-p|&lt;type&gt;] &lt;sha1&gt;

Take advantage of the new packed refs work to use the new
for-each-ref iterator to get this information.

Signed-off-by: Andy Whitcroft &lt;apw@shadowen.org&gt;
Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;
</content>
</entry>
<entry>
<title>cvsimport - cleanup of the multi-indexes handling</title>
<updated>2006-06-28T10:53:37Z</updated>
<author>
<name>Martin Langhoff</name>
<email>martin@catalyst.net.nz</email>
</author>
<published>2006-06-28T10:13:23Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/commit/?id=c5f448b0f2dcba3b14cd8fcae7414def4d3f4e45'/>
<id>urn:sha1:c5f448b0f2dcba3b14cd8fcae7414def4d3f4e45</id>
<content type='text'>
Indexes are only needed when we are about preparing to commit. Prime them
inside commit() when we have all the info we need, and remove all the
redundant index setups.

While we are at it, make sure that index handling is correct when opening
new branches, and on initial import.

Signed-off-by: Martin Langhoff &lt;martin@catalyst.net.nz&gt;
Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;
</content>
</entry>
<entry>
<title>cvsimport: always set $ENV{GIT_INDEX_FILE} to $index{$branch}</title>
<updated>2006-06-25T03:08:25Z</updated>
<author>
<name>Johannes Schindelin</name>
<email>Johannes.Schindelin@gmx.de</email>
</author>
<published>2006-06-24T19:42:20Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/commit/?id=061303f0b50a648db8e0af23791fc56181f6bf93'/>
<id>urn:sha1:061303f0b50a648db8e0af23791fc56181f6bf93</id>
<content type='text'>
Also, make sure that the initial git-read-tree is performed.

Signed-off-by: Johannes Schindelin &lt;Johannes.Schindelin@gmx.de&gt;
</content>
</entry>
<entry>
<title>cvsimport: setup indexes correctly for ancestors and incremental imports</title>
<updated>2006-06-24T12:30:06Z</updated>
<author>
<name>Martin Langhoff</name>
<email>martin@catalyst.net.nz</email>
</author>
<published>2006-06-24T11:13:08Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/commit/?id=7ccd9009ac1fb4764ddf47a1a924ea917ff9468a'/>
<id>urn:sha1:7ccd9009ac1fb4764ddf47a1a924ea917ff9468a</id>
<content type='text'>
Two bugs had slipped in the "keep one index per branch during import"
patch. Both incremental imports and new branches would see an
empty tree for their initial commit. Now we cover all the relevant
cases, checking whether we actually need to setup the index before
preparing the actual commit, and doing it.

Signed-off-by: Martin Langhoff &lt;martin@catalyst.net.nz&gt;
Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;
</content>
</entry>
<entry>
<title>cvsimport: keep one index per branch during import</title>
<updated>2006-06-17T05:45:11Z</updated>
<author>
<name>Martin Langhoff</name>
<email>martin@catalyst.net.nz</email>
</author>
<published>2006-06-12T11:50:49Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/commit/?id=8f732649bc4d5619a1b399e5808b3f4c662ad200'/>
<id>urn:sha1:8f732649bc4d5619a1b399e5808b3f4c662ad200</id>
<content type='text'>
With this patch we have a speedup and much lower IO when
importing trees with many branches. Instead of forcing
index re-population for each branch switch, we keep
many index files around, one per branch.

Signed-off-by: Martin Langhoff &lt;martin@catalyst.net.nz&gt;
Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;
</content>
</entry>
<entry>
<title>cvsimport: complete the cvsps run before starting the import</title>
<updated>2006-06-17T05:45:11Z</updated>
<author>
<name>Martin Langhoff</name>
<email>martin@catalyst.net.nz</email>
</author>
<published>2006-06-11T08:12:20Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/commit/?id=2f57c69792146e6c178a05edec18ab15d0138ad6'/>
<id>urn:sha1:2f57c69792146e6c178a05edec18ab15d0138ad6</id>
<content type='text'>
We now capture the output of cvsps to a tempfile, and then read it in.
cvsps 2.1 works quite a bit "in memory", and only prints its patchset
info once it has finished talking with cvs, but apparently retaining
all that memory allocation. With this patch, cvsps is finished and
reaped before cvsimport start working (and growing). So the footprint
of the whole process is much lower.

Signed-off-by: Martin Langhoff &lt;martin@catalyst.net.nz&gt;
Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;
</content>
</entry>
<entry>
<title>cvsimport: ignore CVSPS_NO_BRANCH and impossible branches</title>
<updated>2006-06-17T05:45:11Z</updated>
<author>
<name>Martin Langhoff</name>
<email>martin@catalyst.net.nz</email>
</author>
<published>2006-06-11T08:12:09Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/commit/?id=71b08148366bbc4d02b3477e7ded35b049206f89'/>
<id>urn:sha1:71b08148366bbc4d02b3477e7ded35b049206f89</id>
<content type='text'>
cvsps output often contains references to CVSPS_NO_BRANCH, commits
that it could not trace to a branch. Ignore that branch.

Additionally, cvsps will sometimes draw circular relationships
between branches -- where two branches are recorded as opening
from the other.  In those cases, and where the ancestor branch
hasn't been seen, ignore it.

Signed-off-by: Martin Langhoff &lt;martin@catalyst.net.nz&gt;
Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;
</content>
</entry>
<entry>
<title>cvsimport: avoid "use" with :tag</title>
<updated>2006-05-25T07:18:42Z</updated>
<author>
<name>Jeff King</name>
<email>peff@peff.net</email>
</author>
<published>2006-05-24T13:58:28Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/commit/?id=e49289dfb788ce47af2939621540fa97abe318ae'/>
<id>urn:sha1:e49289dfb788ce47af2939621540fa97abe318ae</id>
<content type='text'>
Avoid "use POSIX qw(strftime dup2 :errno_h)"; it was reported
that a Perl installations on Mandrake 9.1 did not like it, even
though it understood "use POSIX qw(:errno_h)".  Funny.

Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;
</content>
</entry>
<entry>
<title>cvsimport: set up commit environment in perl instead of using env</title>
<updated>2006-05-23T23:43:12Z</updated>
<author>
<name>Jeff King</name>
<email>peff@peff.net</email>
</author>
<published>2006-05-23T20:59:44Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/commit/?id=62bf0d962963794e9fbcdfdd43419b060d5d245f'/>
<id>urn:sha1:62bf0d962963794e9fbcdfdd43419b060d5d245f</id>
<content type='text'>
Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;
</content>
</entry>
</feed>
