Re: git svn dcommit -n rebuilds revmap w/ 1.5.4.rc0.1187.gc1e8d
From: Eric Wong <hidden>
Date: 2016-06-15 22:44:00
Bill Priest [off-list ref] wrote:
All, I had been experiencing commit slow downs (> 15 seconds) so I decided to test it out on 1.5.4.rc0. I use committed a file and it too ~5 seconds which is slower than it used to be but much better (I'll need to do an apples to apples test to quantify it better; e.g. check in the same file w/ a repository in the same state). In the course of using 1.5.4.rc0 I did a git svn dcommit -n and observed the following:
Are these slowdowns for commits using git-commit? or for using git-svn dcommit? The new rev_map format is very space-efficient, but I haven't optimized for performance, yet. It seems to do well enough on Linux that I don't notice any performance penalty/improvement. I'm also network I/O bound for real-world SVN usage, too. I haven't benchmarked .rev_map much, but the binary search could certainly be optimized to avoid extra seeks if needed.
quoted
git svn dcommit -nRebuilding .git/svn/mss_release_2.1B3/.rev_map.59aec714-b326-0410-a24e-830352df6fdd ... r2918 = 992aa04a75fffdbdb65bae815905f96d5e3ef6bd r2920 = e68e7f5aead05fc9e7a151e95f43b8283b0ed670 Done rebuilding .git/svn/mss_release_2.1B3/.rev_map.59aec714-b326-0410-a24e-830352df6fdd Committing to svn://lucille/var/lib/svnrepos/svnMSS/branches/mss_release_2.1B3 ... diff-tree b7cc4c3d32478277c1cdf13e3abdc9dd4a225826~1 b7cc4c3d32478277c1cdf13e3abdc9dd4a225826 diff-tree 0bbb656391f5a888d07c98ccce01a4c753ef4997~1 0bbb656391f5a888d07c98ccce01a4c753ef4997quoted
git svn dcommit -nCommitting to svn://lucille/var/lib/svnrepos/svnMSS/branches/mss_release_2.1B3 ... diff-tree b7cc4c3d32478277c1cdf13e3abdc9dd4a225826~1 b7cc4c3d32478277c1cdf13e3abdc9dd4a225826 diff-tree 0bbb656391f5a888d07c98ccce01a4c753ef4997~1 0bbb656391f5a888d07c98ccce01a4c753ef4997quoted
git --versiongit version 1.5.4.rc0.1187.gc1e8d Notice the Rebuilding doesn't seem to be honoring the -n "dry run" switch. I'm not sure of the implications. Is this something that I should worry about the .revmap being out of sync w/ what has actually been dcommit'ed?
--dry-run only means that it won't write to the SVN repository. There's no need to worry about stuff that's out of sync, .rev_map only stores information about commits already made to SVN, and is more of an internal cache for most repositories. All .rev_map and .rev_db files it replaces are safely deletable unless you're using noMetadata or useSvmProps with git-svn. -- Eric Wong