- Jan 01, 2012
-
-
Matt Mackall authored
-
- Dec 31, 2011
-
-
Katsunori FUJIWARA authored
-
- Dec 30, 2011
-
-
Wagner Bruna authored
-
Matt Mackall authored
- catch all exceptions - pickle a stringified version of the exception - use a normal abort Hopefully this will result in less mysterious convert exceptions
-
Matt Mackall authored
-
Matt Mackall authored
-
- Dec 29, 2011
-
-
Matt Mackall authored
-
Katsunori FUJIWARA authored
-
Matt Mackall authored
-
- Dec 27, 2011
-
-
Michal Sznajder authored
-
- Dec 24, 2011
-
-
Katsunori FUJIWARA authored
path to subrepo is used to identify or check location of subrepo. it should be normalized (in "/" delimiter form), because it is also used with narrowmatcher which uses only normalized path even on Windows environment. this patch applies "util.pconvert()" on path to subrepo (called "subpath") to normalize it. for this patch, referers of below were checked. - subrepo.state() - subrepo.itersubrepos() - subrepo.subrepo() - context.sub() - context.substate() typical usecase is: for subpath in ctx.substate: sub = ctx.sub(subpath) ... ctx.substate[subpath] .... in this case, normalization has no side effect, because keys given from substate are used as key itself. other cases shown below also seem to require subpath to be normalized. - path components are joined by "/", in "commands.forget()": for subpath in ctx.substate: subforget[subpath + '/' + fsub] = (fsub, sub) - normalized "file" is used to check below condition, in "commands.revert()", "localrepository.commit()", and "localrepository._checknested()" file in ctx.substate - substate.keys() is passed to dirstate.walk()/status() which use only normalized pathes
-
Katsunori FUJIWARA authored
current "localrepository._checknested()" uses specified path itself to compare against subrepo pathes. it is invoked from "hgsubrepo.subrepo()" or pathauditor (as callback), and both use "os.sep" as separator. this causes unexpected nesting check result, if subrepo configuration uses "/" as path separator for sub repo path. this path uses "/" to join path components (or apply "util.pconvert()" on path) to normalize.
-
Katsunori FUJIWARA authored
pathauditor is invoked not only for localpath form using "os.sep" as separator, but also for normalized form using "/": for example, hg internal path like "store/data" under ".hg", or ones normalized by match object this causes insufficient repository nesting check, because current pathauditor implementation divides specified path into components by "os.sep", and this causes to treat multiple path components joined by "/" as single one on Windows environment. this patch applies "util.localpath()" on specified path to force it to be divided into components correctly. in fact, root for pathauditor also uses multiple path separator on Windows. but this does not affect audit itself, so "util.localpath()" is not applied on it.
-
- Dec 20, 2011
-
-
Kevin Bullock authored
Removes the word 'aborted' from the 3rd paragraph in favor of 'interrupted', the same word used in the description of the -c/--continue switch. The word 'interrupted' is also consistent with the help for rebase.
-
Matt Mackall authored
-
- Dec 15, 2011
-
-
Alistair Bell authored
-
- Dec 19, 2011
-
-
Matt Mackall authored
-
- Dec 16, 2011
-
-
Wagner Bruna authored
-
Katsunori FUJIWARA authored
this patch makes branch merging abort when merged changesets have same file in different case on case insensitive filesystem. this patch does not prevent linear update which merges between target and working contexts, because 'branchmerge' is False in such case.
-
Katsunori FUJIWARA authored
this patch uses encoding.lower/upper for case folding, because ones of str can not fold case of non ascii characters correctly. to avoid cyclic dependency and to encapsulate logic of normcase in each platforms, this patch introduces encodinglower/encodingupper in both posix/windows specific files. this patch does not change implementation of normcase() in posix.py, because we do not know the encoding of filenames on POSIX. some "normcase()" are excluded from function wrap list in hgext/win32mbcs.py, because they become encoding aware by this patch.
-
Katsunori FUJIWARA authored
this patch uses upper() instead of lower() or os.path.normcase() for case folding on Windows(NTFS), because lower-ing causes problems for some languages on it. see below for detail about problem of lower-ing: https://blogs.msdn.com/b/michkap/archive/2005/01/16/353873.aspx
-
Katsunori FUJIWARA authored
'dirstate._normalize()', the only caller of 'util.fspath()', has already normcase()-ed path before invocation of it. normcase()-ed root can be cached on dirstate side, too. so, this patch changes 'util.fspath()' API specification to avoid normcase()-ing in it.
-
Katsunori FUJIWARA authored
this also avoids lower()-ing on each path components by reuse the path normcase()-ed at beginning of function.
-
Katsunori FUJIWARA authored
at first of dirstate.walk() on case insensitive filesystem, normalization of '.' causes util.fspath() invocation, but '.' is not cached in it. this invocation is not only useless, but also harmful: initial "hg tag" causes creation of ".hgtags" file after dirstate.walk(), and looking up ".hgtags" in cache will fail, because directory contents of root is already cached at util.fspath() invocation for '.'.
-
Katsunori FUJIWARA authored
for safety, this patch prevents case-less name from misleading into case insensitivity, even though such names should not be used.
-
Katsunori FUJIWARA authored
this patch applies 'util.normcase()' to audit path only on case insensitive filesystem.
-
Katsunori FUJIWARA authored
this patch uses both plain and normcase()-ed pathes to preserve letter case of path in abort messages.
-
Katsunori FUJIWARA authored
in current pathauditor implementation, un-normcase()-ed path is stored into and compared with audit result cache. this is not efficiency on case insensitive filesystem.
-
- Dec 09, 2011
-
-
Martin Geisler authored
The largefiles extension prevents users from adding a normal file named 'foo' if there is already a largefile with the same name. However, there was a loop-hole: when merging, it was possible to bring in a normal file named 'foo' while also having a '.hglf/foo' file. This patch fixes this by extending the manifest merge to deal with these kinds of conflicts. If there is a normal file 'foo' in the working copy, and the other parent brings in a '.hglf/foo' file, then the user will be prompted to keep the normal file or the largefile. Likewise for the symmetric case where a normal file is brought in via the second parent. The prompt looks like this: $ hg merge foo has been turned into a largefile use (l)argefile or keep as (n)ormal file? After the merge, either the '.hglf/foo' file or the 'foo' file will have been deleted. This would cause status to return output like: $ hg status M foo R foo To fix this, the lfiles_repo.status method is changed so that a removed normal file isn't shown if there is largefile with the same name, and vice versa for largefiles.
-
- Dec 14, 2011
-
-
David Soria Parra authored
ui.quiet and ui.debugflag are not initialized during uisetup and reposetup. progressui is always initialized, therefore we have to check during write() if ui.quiet is set or not.
-
- Dec 17, 2011
-
-
Matt Mackall authored
Escaped NULs adjacent to [0-7] could be decoded as octal. This hits about 0.24% of changesets with transplant, which stores binary nodes.
-
- Dec 15, 2011
-
-
Kevin Gessner authored
If the user cache path isn't specified in .hgrc, and it can't be constructed from the environment, don't try to use that cache.
-
- Dec 12, 2011
-
-
Katsunori FUJIWARA authored
-
- Dec 15, 2011
-
-
Martin Geisler authored
-
- Dec 14, 2011
-
-
Renato Cunha authored
When a user requested a diff between a revision (r1) that contained a subrepo and another (r2) that did not, mercurial would crash if r1 was specified before r2 but would execute the diff otherwise. This fixes this behavior by skipping the missing subrepo in the diff.
-
- Dec 15, 2011
-
-
Martin Geisler authored
-
- Dec 09, 2011
-
-
Martin Geisler authored
If a largefile is introduced on the branch that is merged into the working copy, then 'hg status' would abort with an error like: $ hg status abort: .hglf/foo@33fdd332ec64: not found in manifest! The problem was that the largefiles status code only looked in the first parent for the largefile. Largefiles are now always reported as modified if they don't exist in the first parent -- this matches the behavior of localrepo.status for normal files.
-
- Dec 06, 2011
-
-
Olav Reinert authored
-
- Dec 08, 2011
-
-
Matt Mackall authored
-