commit mercurial for openSUSE:Factory
Hello community, here is the log from the commit of package mercurial for openSUSE:Factory checked in at 2015-04-05 02:04:12 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/mercurial (Old) and /work/SRC/openSUSE:Factory/.mercurial.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "mercurial" Changes: -------- --- /work/SRC/openSUSE:Factory/mercurial/mercurial.changes 2015-03-16 09:42:24.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.mercurial.new/mercurial.changes 2015-04-05 02:04:22.000000000 +0200 @@ -1,0 +2,24 @@ +Fri Apr 3 20:35:23 UTC 2015 - wr@rosenauer.org + +- update to 3.3.3 + This is a regularly-scheduled bugfix release. + + adjustlinkrev: handle 'None' value as source + + adjustlinkrev: prepare source revs for ancestry only once + + amend: check for directory renames for both merge parents + (issue4516) + + annotate: reuse ancestry context when adjusting linkrev (issue4532) + + dirstate: don't require exact case when adding dirs on icasefs + (issue4578) + + dirstate: make sure rootdir ends with directory separator + (issue4557) + + filemerge: clean up language in mergemarkertemplate help + + forget: cleanup the output for an inexact case match on icasefs + + hgweb: prevent loading style map from directories other than + specified paths + + mergecopies: reuse ancestry context when traversing file history + (issue4537) + + templates: fix "log -q" output of default style + + templates: fix "log -q" output of phases style + + win32: 'raise ctypes.WinError' -> 'raise ctypes.WinError()' + +------------------------------------------------------------------- Old: ---- mercurial-3.3.2.tar.gz New: ---- mercurial-3.3.3.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ mercurial.spec ++++++ --- /var/tmp/diff_new_pack.t8sd7F/_old 2015-04-05 02:04:23.000000000 +0200 +++ /var/tmp/diff_new_pack.t8sd7F/_new 2015-04-05 02:04:23.000000000 +0200 @@ -17,7 +17,7 @@ Name: mercurial -Version: 3.3.2 +Version: 3.3.3 Release: 0 Summary: Scalable Distributed SCM License: GPL-2.0+ ++++++ mercurial-3.3.2.tar.gz -> mercurial-3.3.3.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.3.2/.hgsigs new/mercurial-3.3.3/.hgsigs --- old/mercurial-3.3.2/.hgsigs 2015-03-02 17:29:45.000000000 +0100 +++ new/mercurial-3.3.3/.hgsigs 2015-04-01 20:27:57.000000000 +0200 @@ -103,3 +103,4 @@ db8e3f7948b1fdeb9ad12d448fc3525759908b9f 0 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 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.3.2/.hgtags new/mercurial-3.3.3/.hgtags --- old/mercurial-3.3.2/.hgtags 2015-03-02 17:29:45.000000000 +0100 +++ new/mercurial-3.3.3/.hgtags 2015-04-01 20:27:57.000000000 +0200 @@ -116,3 +116,4 @@ db8e3f7948b1fdeb9ad12d448fc3525759908b9f 3.3-rc fbdd5195528fae4f41feebc1838215c110b25d6a 3.3 5b4ed033390bf6e2879c8f5c28c84e1ee3b87231 3.3.1 +07a92bbd02e5e3a625e0820389b47786b02b2cea 3.3.2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.3.2/PKG-INFO new/mercurial-3.3.3/PKG-INFO --- old/mercurial-3.3.2/PKG-INFO 2015-03-02 17:29:55.000000000 +0100 +++ new/mercurial-3.3.3/PKG-INFO 2015-04-01 20:28:07.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: mercurial -Version: 3.3.2 +Version: 3.3.3 Summary: Fast scalable distributed SCM (revision control, version control) system Home-page: http://mercurial.selenic.com/ Author: Matt Mackall and many others diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.3.2/doc/hgrc.5 new/mercurial-3.3.3/doc/hgrc.5 --- old/mercurial-3.3.2/doc/hgrc.5 2015-03-02 17:29:49.000000000 +0100 +++ new/mercurial-3.3.3/doc/hgrc.5 2015-04-01 20:28:01.000000000 +0200 @@ -1737,13 +1737,13 @@ format. Defaults to showing the hash, tags, branches, bookmarks, author, and the first line of the commit description. -You have to pay attention to encodings of managed files, if you -use non\-ASCII characters in tags, branches, bookmarks, author -and/or commit descriptions. At template expansion, non\-ASCII -characters use the encoding specified by \fB\-\-encoding\fP global -option, \fBHGENCODING\fP or other locale setting environment -variables. The difference of encoding between merged file and -conflict markers causes serious problem. +If you use non\-ASCII characters in names for tags, branches, bookmarks, +authors, and/or commit descriptions, you must pay attention to encodings of +managed files. At template expansion, non\-ASCII characters use the encoding +specified by the \fB\-\-encoding\fP global option, \fBHGENCODING\fP or other +environment variables that govern your locale. If the encoding of the merge +markers is different from the encoding of the merged files, +serious problems may occur. .TP .B \fBportablefilenames\fP .sp diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.3.2/doc/hgrc.5.html new/mercurial-3.3.3/doc/hgrc.5.html --- old/mercurial-3.3.2/doc/hgrc.5.html 2015-03-02 17:29:52.000000000 +0100 +++ new/mercurial-3.3.3/doc/hgrc.5.html 2015-04-01 20:28:03.000000000 +0200 @@ -1294,13 +1294,13 @@ format. Defaults to showing the hash, tags, branches, bookmarks, author, and the first line of the commit description. -You have to pay attention to encodings of managed files, if you -use non-ASCII characters in tags, branches, bookmarks, author -and/or commit descriptions. At template expansion, non-ASCII -characters use the encoding specified by <tt class="docutils literal"><span class="pre">--encoding</span></tt> global -option, <tt class="docutils literal">HGENCODING</tt> or other locale setting environment -variables. The difference of encoding between merged file and -conflict markers causes serious problem.</dd> +If you use non-ASCII characters in names for tags, branches, bookmarks, +authors, and/or commit descriptions, you must pay attention to encodings of +managed files. At template expansion, non-ASCII characters use the encoding +specified by the <tt class="docutils literal"><span class="pre">--encoding</span></tt> global option, <tt class="docutils literal">HGENCODING</tt> or other +environment variables that govern your locale. If the encoding of the merge +markers is different from the encoding of the merged files, +serious problems may occur.</dd> <dt><tt class="docutils literal">portablefilenames</tt></dt> <dd>Check for portable filenames. Can be <tt class="docutils literal">warn</tt>, <tt class="docutils literal">ignore</tt> or <tt class="docutils literal">abort</tt>. Default is <tt class="docutils literal">warn</tt>. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.3.2/i18n/pt_BR.po new/mercurial-3.3.3/i18n/pt_BR.po --- old/mercurial-3.3.2/i18n/pt_BR.po 2015-03-02 17:29:40.000000000 +0100 +++ new/mercurial-3.3.3/i18n/pt_BR.po 2015-04-01 20:27:41.000000000 +0200 @@ -20109,13 +20109,13 @@ " format.\n" " Defaults to showing the hash, tags, branches, bookmarks, author, and\n" " the first line of the commit description.\n" -" You have to pay attention to encodings of managed files, if you\n" -" use non-ASCII characters in tags, branches, bookmarks, author\n" -" and/or commit descriptions. At template expansion, non-ASCII\n" -" characters use the encoding specified by ``--encoding`` global\n" -" option, ``HGENCODING`` or other locale setting environment\n" -" variables. The difference of encoding between merged file and\n" -" conflict markers causes serious problem." +" If you use non-ASCII characters in names for tags, branches, bookmarks,\n" +" authors, and/or commit descriptions, you must pay attention to encodings of\n" +" managed files. At template expansion, non-ASCII characters use the encoding\n" +" specified by the ``--encoding`` global option, ``HGENCODING`` or other\n" +" environment variables that govern your locale. If the encoding of the merge\n" +" markers is different from the encoding of the merged files,\n" +" serious problems may occur." msgstr "" "``mergemarkertemplate``\n" " O modelo usado para imprimir a descrição da consolidação próxima\n" @@ -20123,9 +20123,9 @@ " Veja :hg:`help templates` para o formato do modelo.\n" " O padrão exibe o hash, etiquetas, ramos, marcadores, autor e\n" " a primeira linha da mensagem de consolidação.\n" -" Você deve prestar atenção na codificação dos arquivos gerenciados\n" -" se forem utilizados caracteres não-ASCII em etiquetas, ramos,\n" -" marcadores, autores ou mensagens de consolidação.\n" +" Se forem utilizados caracteres não-ASCII em etiquetas, ramos,\n" +" marcadores, autores ou mensagens de consolidação,\n" +" é necessário cuidado com a codificação dos arquivos gerenciados.\n" " Na expansão do modelo, caracteres não-ASCII usam a codificação\n" " especificada pela opção global ``--encoding``, ``HGENCODING`` ou\n" " outras variáveis de ambiente de configuração de localização.\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.3.2/mercurial/__version__.py new/mercurial-3.3.3/mercurial/__version__.py --- old/mercurial-3.3.2/mercurial/__version__.py 2015-03-02 17:29:53.000000000 +0100 +++ new/mercurial-3.3.3/mercurial/__version__.py 2015-04-01 20:28:05.000000000 +0200 @@ -1,2 +1,2 @@ # this file is autogenerated by setup.py -version = "3.3.2" +version = "3.3.3" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.3.2/mercurial/cmdutil.py new/mercurial-3.3.3/mercurial/cmdutil.py --- old/mercurial-3.3.2/mercurial/cmdutil.py 2015-03-02 17:29:40.000000000 +0100 +++ new/mercurial-3.3.3/mercurial/cmdutil.py 2015-04-01 20:27:41.000000000 +0200 @@ -2044,6 +2044,12 @@ if f not in repo.dirstate and not repo.wvfs.isdir(f): if f not in forgot: if repo.wvfs.exists(f): + # Don't complain if the exact case match wasn't given. + # But don't do this until after checking 'forgot', so + # that subrepo files aren't normalized, and this op is + # purely from data cached by the status walk above. + if repo.dirstate.normalize(f) in repo.dirstate: + continue ui.warn(_('not removing %s: ' 'file is already untracked\n') % match.rel(f)) @@ -2281,6 +2287,8 @@ date = ctx.date() # Recompute copies (avoid recording a -> b -> a) copied = copies.pathcopies(base, ctx) + if old.p2: + copied.update(copies.pathcopies(old.p2(), ctx)) # Prune files which were reverted by the updates: if old # introduced file X and our intermediate commit, node, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.3.2/mercurial/context.py new/mercurial-3.3.3/mercurial/context.py --- old/mercurial-3.3.2/mercurial/context.py 2015-03-02 17:29:40.000000000 +0100 +++ new/mercurial-3.3.3/mercurial/context.py 2015-04-01 20:27:41.000000000 +0200 @@ -774,13 +774,19 @@ # hack to reuse ancestor computation when searching for renames memberanc = getattr(self, '_ancestrycontext', None) iteranc = None + if srcrev is None: + # wctx case, used by workingfilectx during mergecopy + revs = [p.rev() for p in self._repo[None].parents()] + inclusive = True # we skipped the real (revless) source + else: + revs = [srcrev] if memberanc is None: - memberanc = iteranc = cl.ancestors([srcrev], lkr, + memberanc = iteranc = cl.ancestors(revs, lkr, inclusive=inclusive) # check if this linkrev is an ancestor of srcrev if lkr not in memberanc: if iteranc is None: - iteranc = cl.ancestors([srcrev], lkr, inclusive=inclusive) + iteranc = cl.ancestors(revs, lkr, inclusive=inclusive) for a in iteranc: ac = cl.read(a) # get changeset data (we avoid object creation) if path in ac[3]: # checking the 'files' field. @@ -913,6 +919,8 @@ introrev = self.introrev() if self.rev() != introrev: base = self.filectx(self.filenode(), changeid=introrev) + ac = self._repo.changelog.ancestors([introrev], inclusive=True) + base._ancestrycontext = ac # This algorithm would prefer to be recursive, but Python is a # bit recursion-hostile. Instead we do an iterative diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.3.2/mercurial/copies.py new/mercurial-3.3.3/mercurial/copies.py --- old/mercurial-3.3.2/mercurial/copies.py 2015-03-02 17:29:40.000000000 +0100 +++ new/mercurial-3.3.3/mercurial/copies.py 2015-04-01 20:27:41.000000000 +0200 @@ -246,14 +246,41 @@ m2 = c2.manifest() ma = ca.manifest() - def makectx(f, n): - if len(n) != 20: # in a working context? - if c1.rev() is None: - return c1.filectx(f) - return c2.filectx(f) - return repo.filectx(f, fileid=n) - ctx = util.lrucachefunc(makectx) + def setupctx(ctx): + """return a 'makectx' function suitable for checkcopies usage from ctx + + We have to re-setup the function building 'filectx' for each + 'checkcopies' to ensure the linkrev adjustement is properly setup for + each. Linkrev adjustment is important to avoid bug in rename + detection. Moreover, having a proper '_ancestrycontext' setup ensures + the performance impact of this adjustment is kept limited. Without it, + each file could do a full dag traversal making the time complexity of + the operation explode (see issue4537). + + This function exists here mostly to limit the impact on stable. Feel + free to refactor on default. + """ + rev = ctx.rev() + ac = getattr(ctx, '_ancestrycontext', None) + if ac is None: + revs = [rev] + if rev is None: + revs = [p.rev() for p in ctx.parents()] + ac = ctx._repo.changelog.ancestors(revs, inclusive=True) + ctx._ancestrycontext = ac + def makectx(f, n): + if len(n) != 20: # in a working context? + if c1.rev() is None: + return c1.filectx(f) + return c2.filectx(f) + fctx = repo.filectx(f, fileid=n) + # setup only needed for filectx not create from a changectx + fctx._ancestrycontext = ac + fctx._descendantrev = rev + return fctx + return util.lrucachefunc(makectx) + copy = {} movewithdir = {} fullcopy = {} @@ -272,9 +299,11 @@ % "\n ".join(u2)) for f in u1: + ctx = setupctx(c1) checkcopies(ctx, f, m1, m2, ca, limit, diverge, copy, fullcopy) for f in u2: + ctx = setupctx(c2) checkcopies(ctx, f, m2, m1, ca, limit, diverge, copy, fullcopy) renamedelete = {} @@ -297,7 +326,9 @@ % "\n ".join(bothnew)) bothdiverge, _copy, _fullcopy = {}, {}, {} for f in bothnew: + ctx = setupctx(c1) checkcopies(ctx, f, m1, m2, ca, limit, bothdiverge, _copy, _fullcopy) + ctx = setupctx(c2) checkcopies(ctx, f, m2, m1, ca, limit, bothdiverge, _copy, _fullcopy) for of, fl in bothdiverge.items(): if len(fl) == 2 and fl[0] == fl[1]: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.3.2/mercurial/dirstate.py new/mercurial-3.3.3/mercurial/dirstate.py --- old/mercurial-3.3.2/mercurial/dirstate.py 2015-03-02 17:29:40.000000000 +0100 +++ new/mercurial-3.3.3/mercurial/dirstate.py 2015-04-01 20:27:41.000000000 +0200 @@ -38,7 +38,12 @@ self._opener = opener self._validate = validate self._root = root - self._rootdir = os.path.join(root, '') + # ntpath.join(root, '') of Python 2.7.9 does not add sep if root is + # UNC path pointing to root share (issue4557) + if root.endswith(os.sep): + self._rootdir = root + else: + self._rootdir = root + os.sep self._dirty = False self._dirtypl = False self._lastnormaltime = 0 @@ -646,7 +651,7 @@ results[nf] = None if matchedir: matchedir(nf) - foundadd(nf) + foundadd((nf, ff)) elif kind == regkind or kind == lnkkind: results[nf] = st else: @@ -722,15 +727,16 @@ results, work, dirsnotfound = self._walkexplicit(match, subrepos) skipstep3 = skipstep3 and not (work or dirsnotfound) - work = [d for d in work if not dirignore(d)] + work = [d for d in work if not dirignore(d[0])] wadd = work.append # step 2: visit subdirectories while work: - nd = work.pop() + nd, d = work.pop() skip = None if nd == '.': nd = '' + d = '' else: skip = '.hg' try: @@ -743,21 +749,23 @@ for f, kind, st in entries: if normalize: nf = normalize(nd and (nd + "/" + f) or f, True, True) + f = d and (d + "/" + f) or f else: nf = nd and (nd + "/" + f) or f + f = nf if nf not in results: if kind == dirkind: if not ignore(nf): if matchtdir: matchtdir(nf) - wadd(nf) + wadd((nf, f)) if nf in dmap and (matchalways or matchfn(nf)): results[nf] = None elif kind == regkind or kind == lnkkind: if nf in dmap: if matchalways or matchfn(nf): results[nf] = st - elif (matchalways or matchfn(nf)) and not ignore(nf): + elif (matchalways or matchfn(f)) and not ignore(nf): results[nf] = st elif nf in dmap and (matchalways or matchfn(nf)): results[nf] = None diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.3.2/mercurial/help/config.txt new/mercurial-3.3.3/mercurial/help/config.txt --- old/mercurial-3.3.2/mercurial/help/config.txt 2015-03-02 17:29:40.000000000 +0100 +++ new/mercurial-3.3.3/mercurial/help/config.txt 2015-04-01 20:27:41.000000000 +0200 @@ -1368,13 +1368,13 @@ format. Defaults to showing the hash, tags, branches, bookmarks, author, and the first line of the commit description. - You have to pay attention to encodings of managed files, if you - use non-ASCII characters in tags, branches, bookmarks, author - and/or commit descriptions. At template expansion, non-ASCII - characters use the encoding specified by ``--encoding`` global - option, ``HGENCODING`` or other locale setting environment - variables. The difference of encoding between merged file and - conflict markers causes serious problem. + If you use non-ASCII characters in names for tags, branches, bookmarks, + authors, and/or commit descriptions, you must pay attention to encodings of + managed files. At template expansion, non-ASCII characters use the encoding + specified by the ``--encoding`` global option, ``HGENCODING`` or other + environment variables that govern your locale. If the encoding of the merge + markers is different from the encoding of the merged files, + serious problems may occur. ``portablefilenames`` Check for portable filenames. Can be ``warn``, ``ignore`` or ``abort``. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.3.2/mercurial/templater.py new/mercurial-3.3.3/mercurial/templater.py --- old/mercurial-3.3.2/mercurial/templater.py 2015-03-02 17:29:40.000000000 +0100 +++ new/mercurial-3.3.3/mercurial/templater.py 2015-04-01 20:27:41.000000000 +0200 @@ -747,7 +747,11 @@ styles = [styles] for style in styles: - if not style: + # only plain name is allowed to honor template paths + if (not style + or style in (os.curdir, os.pardir) + or os.sep in style + or os.altsep and os.altsep in style): continue locations = [os.path.join(style, 'map'), 'map-' + style] locations.append('map') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.3.2/mercurial/templates/map-cmdline.default new/mercurial-3.3.3/mercurial/templates/map-cmdline.default --- old/mercurial-3.3.2/mercurial/templates/map-cmdline.default 2015-03-02 17:29:40.000000000 +0100 +++ new/mercurial-3.3.3/mercurial/templates/map-cmdline.default 2015-04-01 20:27:41.000000000 +0200 @@ -1,7 +1,7 @@ # Base templates. Due to name clashes with existing keywords, we have # to replace some keywords with 'lkeyword', for 'labelled keyword' changeset = '{cset}{branches}{bookmarks}{tags}{parents}{user}{ldate}{summary}\n' -changeset_quiet = '{node}' +changeset_quiet = '{lnode}' changeset_verbose = '{cset}{branches}{bookmarks}{tags}{parents}{user}{ldate}{lfiles}{lfile_copies_switch}{description}\n' changeset_debug = '{fullcset}{branches}{bookmarks}{tags}{lphase}{parents}{manifest}{user}{ldate}{lfile_mods}{lfile_adds}{lfile_dels}{lfile_copies_switch}{extras}{description}\n' @@ -40,7 +40,7 @@ parent = '{label("log.parent changeset.{phase}", "parent: {rev}:{node|formatnode}")}\n' -node = '{label("log.node", +lnode = '{label("log.node", "{rev}:{node|short}")}\n' manifest = '{label("ui.debug log.manifest", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.3.2/mercurial/templates/map-cmdline.phases new/mercurial-3.3.3/mercurial/templates/map-cmdline.phases --- old/mercurial-3.3.2/mercurial/templates/map-cmdline.phases 2015-03-02 17:29:40.000000000 +0100 +++ new/mercurial-3.3.3/mercurial/templates/map-cmdline.phases 2015-04-01 20:27:41.000000000 +0200 @@ -1,7 +1,7 @@ # Base templates. Due to name clashes with existing keywords, we have # to replace some keywords with 'lkeyword', for 'labelled keyword' changeset = '{cset}{branches}{bookmarks}{tags}{lphase}{parents}{user}{ldate}{summary}\n' -changeset_quiet = '{node}' +changeset_quiet = '{lnode}' changeset_verbose = '{cset}{branches}{bookmarks}{tags}{lphase}{parents}{user}{ldate}{lfiles}{lfile_copies_switch}{description}\n' changeset_debug = '{fullcset}{branches}{bookmarks}{tags}{lphase}{parents}{manifest}{user}{ldate}{lfile_mods}{lfile_adds}{lfile_dels}{lfile_copies_switch}{extras}{description}\n' @@ -40,7 +40,7 @@ parent = '{label("log.parent changeset.{phase}", "parent: {rev}:{node|formatnode}")}\n' -node = '{label("log.node", +lnode = '{label("log.node", "{rev}:{node|short}")}\n' manifest = '{label("ui.debug log.manifest", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.3.2/mercurial/win32.py new/mercurial-3.3.3/mercurial/win32.py --- old/mercurial-3.3.2/mercurial/win32.py 2015-03-02 17:29:40.000000000 +0100 +++ new/mercurial-3.3.3/mercurial/win32.py 2015-04-01 20:27:41.000000000 +0200 @@ -279,7 +279,7 @@ buf = ctypes.create_string_buffer(size + 1) len = _kernel32.GetModuleFileNameA(None, ctypes.byref(buf), size) if len == 0: - raise ctypes.WinError + raise ctypes.WinError() elif len == size: raise ctypes.WinError(_ERROR_INSUFFICIENT_BUFFER) return buf.value @@ -289,7 +289,7 @@ size = _DWORD(300) buf = ctypes.create_string_buffer(size.value + 1) if not _advapi32.GetUserNameA(ctypes.byref(buf), ctypes.byref(size)): - raise ctypes.WinError + raise ctypes.WinError() return buf.value _signalhandler = [] @@ -307,7 +307,7 @@ h = _SIGNAL_HANDLER(handler) _signalhandler.append(h) # needed to prevent garbage collection if not _kernel32.SetConsoleCtrlHandler(h, True): - raise ctypes.WinError + raise ctypes.WinError() def hidewindow(): @@ -349,7 +349,7 @@ # create handle to list all processes ph = _kernel32.CreateToolhelp32Snapshot(_TH32CS_SNAPPROCESS, 0) if ph == _INVALID_HANDLE_VALUE: - raise ctypes.WinError + raise ctypes.WinError() try: r = _kernel32.Process32First(ph, ctypes.byref(pe)) # loop over all processes @@ -361,7 +361,7 @@ finally: _kernel32.CloseHandle(ph) if _kernel32.GetLastError() != _ERROR_NO_MORE_FILES: - raise ctypes.WinError + raise ctypes.WinError() return None # no child found class _tochildpid(int): # pid is _DWORD, which always matches in an int @@ -413,7 +413,7 @@ None, args, None, None, False, _CREATE_NO_WINDOW, env, os.getcwd(), ctypes.byref(si), ctypes.byref(pi)) if not res: - raise ctypes.WinError + raise ctypes.WinError() # _tochildpid because the process is the child of COMSPEC return _tochildpid(pi.dwProcessId) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.3.2/tests/test-add.t new/mercurial-3.3.3/tests/test-add.t --- old/mercurial-3.3.2/tests/test-add.t 2015-03-02 17:29:40.000000000 +0100 +++ new/mercurial-3.3.3/tests/test-add.t 2015-04-01 20:27:41.000000000 +0200 @@ -169,4 +169,19 @@ $ cat d file d +Test that adding a directory doesn't require case matching (issue4578) +#if icasefs + $ mkdir -p CapsDir1/CapsDir + $ echo abc > CapsDir1/CapsDir/AbC.txt + $ mkdir CapsDir1/CapsDir/SubDir + $ echo def > CapsDir1/CapsDir/SubDir/Def.txt + + $ hg add -v capsdir1/capsdir + adding CapsDir1/CapsDir/AbC.txt (glob) + adding CapsDir1/CapsDir/SubDir/Def.txt (glob) + + $ hg forget capsdir1/capsdir/abc.txt + removing CapsDir1/CapsDir/AbC.txt (glob) +#endif + $ cd .. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.3.2/tests/test-command-template.t new/mercurial-3.3.3/tests/test-command-template.t --- old/mercurial-3.3.2/tests/test-command-template.t 2015-03-02 17:29:40.000000000 +0100 +++ new/mercurial-3.3.3/tests/test-command-template.t 2015-04-01 20:27:41.000000000 +0200 @@ -101,6 +101,10 @@ $ hg log -v --style default > style.out $ cmp log.out style.out || diff -u log.out style.out + $ hg log -q > log.out + $ hg log -q --style default > style.out + $ cmp log.out style.out || diff -u log.out style.out + $ hg log --debug > log.out $ hg log --debug --style default > style.out $ cmp log.out style.out || diff -u log.out style.out @@ -119,6 +123,9 @@ $ hg --color=debug -v log > log.out $ hg --color=debug -v log --style default > style.out $ cmp log.out style.out || diff -u log.out style.out + $ hg --color=debug -q log > log.out + $ hg --color=debug -q log --style default > style.out + $ cmp log.out style.out || diff -u log.out style.out $ hg --color=debug --debug log > log.out $ hg --color=debug --debug log --style default > style.out $ cmp log.out style.out || diff -u log.out style.out diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.3.2/tests/test-commit-amend.t new/mercurial-3.3.3/tests/test-commit-amend.t --- old/mercurial-3.3.2/tests/test-commit-amend.t 2015-03-02 17:29:40.000000000 +0100 +++ new/mercurial-3.3.3/tests/test-commit-amend.t 2015-04-01 20:27:41.000000000 +0200 @@ -1057,3 +1057,66 @@ A a2 a0 R a0 + $ cd .. + +Check that amend properly preserve rename from directory rename (issue-4516) + +If a parent of the merge renames a full directory, any files added to the old +directory in the other parent will be renamed to the new directory. For some +reason, the rename metadata was when amending such merge. This test ensure we +do not regress. We have a dedicated repo because it needs a setup with renamed +directory) + + $ hg init issue4516 + $ cd issue4516 + $ mkdir olddirname + $ echo line1 > olddirname/commonfile.py + $ hg add olddirname/commonfile.py + $ hg ci -m first + + $ hg branch newdirname + marked working directory as branch newdirname + (branches are permanent and global, did you want a bookmark?) + $ hg mv olddirname newdirname + moving olddirname/commonfile.py to newdirname/commonfile.py (glob) + $ hg ci -m rename + + $ hg update default + 1 files updated, 0 files merged, 1 files removed, 0 files unresolved + $ echo line1 > olddirname/newfile.py + $ hg add olddirname/newfile.py + $ hg ci -m log + + $ hg up newdirname + 1 files updated, 0 files merged, 2 files removed, 0 files unresolved + $ # create newdirname/newfile.py + $ hg merge default + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + (branch merge, don't forget to commit) + $ hg ci -m add + $ + $ hg debugrename newdirname/newfile.py + newdirname/newfile.py renamed from olddirname/newfile.py:690b295714aed510803d3020da9c70fca8336def + $ hg status -C --change . + A newdirname/newfile.py + $ hg status -C --rev 1 + A newdirname/newfile.py + $ hg status -C --rev 2 + A newdirname/commonfile.py + olddirname/commonfile.py + A newdirname/newfile.py + olddirname/newfile.py + R olddirname/commonfile.py + R olddirname/newfile.py + $ hg debugindex newdirname/newfile.py + rev offset length base linkrev nodeid p1 p2 + 0 0 88 0 3 34a4d536c0c0 000000000000 000000000000 + + $ echo a >> newdirname/commonfile.py + $ hg ci --amend -m bug + $ hg debugrename newdirname/newfile.py + newdirname/newfile.py renamed from olddirname/newfile.py:690b295714aed510803d3020da9c70fca8336def + $ hg debugindex newdirname/newfile.py + rev offset length base linkrev nodeid p1 p2 + 0 0 88 0 3 34a4d536c0c0 000000000000 000000000000 + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.3.2/tests/test-hgweb.t new/mercurial-3.3.3/tests/test-hgweb.t --- old/mercurial-3.3.2/tests/test-hgweb.t 2015-03-02 17:29:40.000000000 +0100 +++ new/mercurial-3.3.3/tests/test-hgweb.t 2015-04-01 20:27:41.000000000 +0200 @@ -578,6 +578,45 @@ +no style can be loaded from directories other than the specified paths + + $ mkdir -p x/templates/fallback + $ cat <<EOF > x/templates/fallback/map + > default = 'shortlog' + > shortlog = 'fall back to default\n' + > mimetype = 'text/plain' + > EOF + $ cat <<EOF > x/map + > default = 'shortlog' + > shortlog = 'access to outside of templates directory\n' + > mimetype = 'text/plain' + > EOF + + $ "$TESTDIR/killdaemons.py" $DAEMON_PIDS + $ hg serve -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log \ + > --config web.style=fallback --config web.templates=x/templates + $ cat hg.pid >> $DAEMON_PIDS + + $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT "?style=`pwd`/x" + 200 Script output follows + + fall back to default + + $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '?style=..' + 200 Script output follows + + fall back to default + + $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '?style=./..' + 200 Script output follows + + fall back to default + + $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '?style=.../.../' + 200 Script output follows + + fall back to default + errors $ cat errors.log diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mercurial-3.3.2/tests/test-log.t new/mercurial-3.3.3/tests/test-log.t --- old/mercurial-3.3.2/tests/test-log.t 2015-03-02 17:29:40.000000000 +0100 +++ new/mercurial-3.3.3/tests/test-log.t 2015-04-01 20:27:41.000000000 +0200 @@ -150,6 +150,9 @@ summary: e + $ hg log -f -l1 --style phases -q + 4:7e4639b4691b + -f, but no args $ hg log -f
participants (1)
-
root@hilbert.suse.de