- 18 4月, 2014 1 次提交
-
-
由 RomanBelinsky 提交于
Some broken subversion server gives timestamps with only one digit in the hour part, like this: 2014-01-07T5:01:02.048176Z Loosen the regexp that expected to see two-digit hour, minute and second parts to accept a single-digit hour (but not minute or second). Signed-off-by: NStepan Kasal <kasal@ucw.cz> Signed-off-by: NJunio C Hamano <gitster@pobox.com>
-
- 01 4月, 2014 2 次提交
-
-
由 Justin Lebar 提交于
Signed-off-by: NJustin Lebar <jlebar@google.com> Signed-off-by: NJunio C Hamano <gitster@pobox.com>
-
由 Justin Lebar 提交于
Signed-off-by: NJustin Lebar <jlebar@google.com> Signed-off-by: NJunio C Hamano <gitster@pobox.com>
-
- 23 1月, 2014 1 次提交
-
-
由 lin zuojian 提交于
According to profile data, _rev_list and rebuild consume a large portion of time. Memoize the results of _rev_list and memoize rebuild internals to avoid subprocess invocation. When importing 15152 revisions on a LAN, time improved from 10 hours to 3-4 hours. Signed-off-by: Nlin zuojian <manjian2006@gmail.com> Signed-off-by: NEric Wong <normalperson@yhbt.net>
-
- 08 3月, 2013 2 次提交
-
-
由 Eric Wong 提交于
All other instances of "W:"-prefixed warning messages have a space after the "W:" to help with readability. Signed-off-by: NEric Wong <normalperson@yhbt.net>
-
由 Jan Pešta 提交于
Currently this is cosmetic change - the merges are ignored, becuase the methods (lookup_svn_merge, find_rev_before, find_rev_after) are failing on comparing text with number. See http://www.open.collab.net/community/subversion/articles/merge-info.html Extract: The range r30430:30435 that was added to 1.5.x in this merge has a '*' suffix for 1.5.x\www. This '*' is the marker for a non-inheritable mergeinfo range. The '*' means that only the path on which the mergeinfo is explicitly set has had this range merged into it. Signed-off-by: NJan Pesta <jan.pesta@certicon.cz> Signed-off-by: NEric Wong <normalperson@yhbt.net>
-
- 10 2月, 2013 1 次提交
-
-
由 Ben Walton 提交于
This function has utility outside of the SVN module for any routine that needs the equivalent of GNU strftime's %z formatting option. Move it to the top-level Git.pm so that non-SVN modules don't need to import the SVN module to use it. The rename makes the purpose of the function clearer. Signed-off-by: NBen Walton <bdwalton@gmail.com> Signed-off-by: NJunio C Hamano <gitster@pobox.com>
-
- 24 1月, 2013 1 次提交
-
-
由 Eric Wong 提交于
We do not need to call uc() separately for sprintf("%x") as sprintf("%X") is available. Signed-off-by: NEric Wong <normalperson@yhbt.net> Reviewed-by: NJonathan Nieder <jrnieder@gmail.com>
-
- 06 10月, 2012 3 次提交
-
-
由 Jonathan Nieder 提交于
All users of $gs->{path} should have been converted to use the accessor by now. Check our work by renaming the underlying variable to break callers that try to use it directly. Signed-off-by: NJonathan Nieder <jrnieder@gmail.com> Signed-off-by: NEric Wong <normalperson@yhbt.net>
-
由 Steven Walter 提交于
This fixes a bug where git finds the incorrect merge parent. Consider a repository with trunk, branch1 of trunk, and branch2 of branch1. Without this change, git interprets a merge of branch2 into trunk as a merge of branch1 into trunk. Signed-off-by: NSteven Walter <stevenrwalter@gmail.com> Reviewed-by: NSam Vilain <sam@vilain.net> Signed-off-by: NEric Wong <normalperson@yhbt.net>
-
由 Steven Walter 提交于
Consider the case where you have trunk, branch1 of trunk, and branch2 of branch1. trunk is merged back into branch2, and then branch2 is reintegrated into trunk. The merge of branch2 into trunk will have svn:mergeinfo property references to both branch1 and branch2. When git-svn fetches the commit that merges branch2 (check_cherry_pick), it is necessary to eliminate the merged contents of branch1 as well as branch2, or else the merge will be incorrectly ignored as a cherry-pick. Signed-off-by: NSteven Walter <stevenrwalter@gmail.com> Reviewed-by: NSam Vilain <sam@vilain.net> Signed-off-by: NEric Wong <normalperson@yhbt.net>
-
- 11 8月, 2012 1 次提交
-
-
由 Peter Baumann 提交于
Since v1.7.0-rc2~11 (git-svn: persistent memoization, 2010-01-30), git-svn has maintained some private per-repository caches in .git/svn/.caches to avoid refetching and recalculating some mergeinfo-related information with every 'git svn fetch'. This memoization can cause problems, e.g consider the following case: SVN repo: ... - a - b - c - m <- trunk \ / d - e <- branch1 The Git import of the above repo is at commit 'a' and doesn't know about the branch1. In case of an 'git svn rebase', only the trunk of the SVN repo is imported. During the creation of the git commit 'm', git svn uses the svn:mergeinfo property and tries to find the corresponding git commit 'e' to create 'm' with 'c' and 'e' as parents. But git svn rebase only imports the current branch so commit 'e' is not imported. Therefore git svn fails to create commit 'm' as a merge commit, because one of its parents is not known to git. The imported history looks like this: ... - a - b - c - m <- trunk A later 'git svn fetch' to import all branches can't rewrite the commit 'm' to add 'e' as a parent and to make it a real git merge commit, because it was already imported. That's why the imported history misses the merge and looks like this: ... - a - b - c - m <- trunk \ d - e <- branch1 Right now the only known workaround for importing 'm' as a merge is to force reimporting 'm' again from SVN, e.g. via $ git svn reset --revision $(git find-rev $c) $ git svn fetch Sadly, this is where the behavior has regressed: git svn reset doesn't invalidate the old mergeinfo cache, which is no longer valid for the reimport, which leads to 'm' beeing imprted with only 'c' as parent. As solution to this problem, this commit invalidates the mergeinfo cache to force correct recalculation of the parents. During development of this patch, several ways for invalidating the cache where considered. One of them is to use Memoize::flush_cache, which will call the CLEAR method on the underlying Memoize persistency implementation. Sadly, neither Memoize::Storable nor the newer Memoize::YAML module introduced in 68f532f4 could optionally be used implement the CLEAR method, so this is not an option. Reseting the internal hash used to store the memoized values has the same problem, because it calls the non-existing CLEAR method of the underlying persistency layer, too. Considering this and taking into account the different implementations of the memoization modules, where Memoize::Storable is not in our control, implementing the missing CLEAR method is not an option, at least not if Memoize::Storable is still used. Therefore the easiest solution to clear the cache is to delete the files on disk in 'git svn reset'. Normally, deleting the files behind the back of the memoization module would be problematic, because the in-memory representation would still exist and contain wrong data. Fortunately, the memoization is active in memory only for a small portion of the code. Invalidating the cache by deleting the files on disk if it isn't active should be safe. Signed-off-by: NPeter Baumann <waste.manager@gmx.de> Signed-off-by: NSteven Walter <stevenrwalter@gmail.com> Signed-off-by: NEric Wong <normalperson@yhbt.net>
-
- 03 8月, 2012 11 次提交
-
-
由 Michael G. Schwern 提交于
[ew: commit title] Signed-off-by: NEric Wong <normalperson@yhbt.net>
-
由 Michael G. Schwern 提交于
Go through all the spots that use the new add_path_to_url() to make a new URL and canonicalize them. * copyfrom_path has to be canonicalized else find_parent_branch will get confused * due to the `canonicalize_url($full_url) ne $full_url)` line of logic in gs_do_switch(), $full_url is left alone until after. At this point SVN 1.7 passes except for 3 tests in t9100-git-svn-basic.sh that look like an SVN bug to do with symlinks. [ew: commit title] Signed-off-by: NEric Wong <normalperson@yhbt.net>
-
由 Michael G. Schwern 提交于
Remove the ad-hoc versions. This is mostly to normalize the process and ensure the URLs produced don't have double slashes or anything. Also provides a place to fix the corner case where a file path contains a percent sign. [ew: commit title] Signed-off-by: NEric Wong <normalperson@yhbt.net>
-
由 Michael G. Schwern 提交于
The old hand-rolled URL escape functions were inferior to canonicalization functions. Continuing to move towards getting everything canonicalizing the same way. * Git::SVN->init_remote_config and Git::SVN::Ra->minimize_url both have to canonicalize the same way else init_remote_config will incorrectly think they're different URLs causing t9107-git-svn-migrate.sh to fail. [ew: commit title] Signed-off-by: NEric Wong <normalperson@yhbt.net>
-
由 Michael G. Schwern 提交于
Previously, our URL canonicalization didn't do much of anything. Now it actually escapes and collapses slashes. This is mostly a cut & paste of escape_url from git-svn. This is closer to how SVN 1.7's canonicalization behaves. Doing it with 1.6 lets us chase down some problems caused by more effective canonicalization without having to deal with all the other 1.7 issues on top of that. * Remote URLs have to be canonicalized otherwise Git::SVN->find_existing_remote will think they're different. * The SVN remote is now written to the git config canonicalized. That should be ok. Adjust a test to account for that. [ew: commit title] Signed-off-by: NEric Wong <normalperson@yhbt.net>
-
由 Michael G. Schwern 提交于
This canonicalizes paths and urls as early as possible so we don't have to remember to do it at the point of use. It will fix a swath of SVN 1.7 problems in one go. Its ok to double canonicalize things. SVN 1.7 still fails, still not worrying about that. [ew: commit title] Signed-off-by: NEric Wong <normalperson@yhbt.net>
-
由 Michael G. Schwern 提交于
Otherwise you might wind up with things like... my $path1 = undef; my $path2 = 'foo'; my $path = $path1 . '/' . $path2; creating '/foo'. Or this... my $path1 = 'foo/'; my $path2 = 'bar'; my $path = $path1 . '/' . $path2; creating 'foo//bar'. Could have used File::Spec, but I'm shying away from it due to SVN 1.7's pickiness about paths. Felt it would be better to have our own we can control completely. [ew: commit title] Signed-off-by: NEric Wong <normalperson@yhbt.net>
-
由 Michael G. Schwern 提交于
Note: The structure returned from Git::SVN->read_all_remotes() does not appear to contain objects, so I'm leaving them alone. That's everything converted over to the url and path accessors. No functional change. [ew: commit title] Signed-off-by: NEric Wong <normalperson@yhbt.net>
-
由 Michael G. Schwern 提交于
No functional change. [ew: commit title] Signed-off-by: NEric Wong <normalperson@yhbt.net>
-
由 Michael G. Schwern 提交于
So later it can do automatic canonicalization. A later patch will make other things use the accessor. No functional change here. [ew: commit title] Signed-off-by: NEric Wong <normalperson@yhbt.net>
-
由 Michael G. Schwern 提交于
Then later it can be canonicalized automatically rather than everywhere its used. Later patch will make other things use it. [ew: commit title, reformatted accessor to match existing style] Signed-off-by: NEric Wong <normalperson@yhbt.net>
-
- 28 7月, 2012 3 次提交
-
-
由 Michael G. Schwern 提交于
Straight cut & paste. That's the last class. * Make Git::SVN load it on its own, its the only thing that needs it. Signed-off-by: NEric Wong <normalperson@yhbt.net>
-
由 Michael G. Schwern 提交于
Also it can compile on its own now, yay! Signed-off-by: NJunio C Hamano <gitster@pobox.com> Signed-off-by: NEric Wong <normalperson@yhbt.net>
-
由 Michael G. Schwern 提交于
Except for adding the 1; at the end, this is a straight copy & paste. Tests still pass, but its doubtful Git::SVN will compile on its own without git-svn being loaded. Next commit will fix that. Signed-off-by: NJunio C Hamano <gitster@pobox.com> Signed-off-by: NEric Wong <normalperson@yhbt.net>
-