<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel">
    <title>gmane.comp.version-control.mercurial.devel</title>
    <link>http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50456"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50455"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50454"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50453"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50452"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50451"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50450"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50449"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50448"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50447"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50446"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50445"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50444"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50443"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50442"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50441"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50440"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50439"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50438"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50437"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50456">
    <title>Re: Heads up: the bug tracker has moved</title>
    <link>http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50456</link>
    <description>&lt;pre&gt;On Tue, May 22, 2012 at 3:00 AM, FUJIWARA Katsunori
&amp;lt;foozy&amp;lt; at &amp;gt;lares.dti.ne.jp&amp;gt;wrote:


Hi Fujiwara-san,

That looks like some kind of problem. It should be sending out messages
when new bugs are filed.

I think I've fixed it now.
&lt;/pre&gt;</description>
    <dc:creator>Bryan O'Sullivan</dc:creator>
    <dc:date>2012-05-22T16:19:21</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50455">
    <title>[PATCH 0 of 1 STABLE] match: make 'match.files()' return list objectalways</title>
    <link>http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50455</link>
    <description>&lt;pre&gt;this series was posted as STABLE, because this improves backward
compatibility for unbundled extensions.

# should this kind of improvements be treated as non-STABLE ?

for example, TimestampMod extension expects 'match.files()' to return
a list-object, but in some cases (e.g.: 'qrefresh') current
implementation does not. so, TimestampMod may cause exception.

# in fact, it also expects 'match.files()' to have 'append()' method,
# but 'set' only has 'add()'

this problem around qrefresh and TimestampMod seems to be introduced
by 127281884959, which replaced 'util.unique()' with 'set()'.
&lt;/pre&gt;</description>
    <dc:creator>FUJIWARA Katsunori</dc:creator>
    <dc:date>2012-05-22T15:45:27</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50454">
    <title>[PATCH 1 of 1 STABLE] match: make 'match.files()' return list objectalways</title>
    <link>http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50454</link>
    <description>&lt;pre&gt;# HG changeset patch
# User FUJIWARA Katsunori &amp;lt;foozy&amp;lt; at &amp;gt;lares.dti.ne.jp&amp;gt;
# Date 1337700329 -32400
# Branch stable
# Node ID ee408a861ab8719b89fa505f98879a4ecff9a087
# Parent  0a730d3c5aaefae00239b8472703c884192f31b7
match: make 'match.files()' return list object always

'exact' match objects are sometimes created with a non-list 'pattern'
argument:

  - using 'set' in queue.refresh():hgext/mq.py
        match = scmutil.matchfiles(repo, set(c[0] + c[1] + c[2] + inclsubs))

  - using 'dict' in revert():mercurial/cmdutil.py (names = {})
        m = scmutil.matchfiles(repo, names)

'exact' match objects return specified 'pattern' to callers of
'match.files()' as it is, so it is a non-list object.

but almost all implementations expect 'match.files()' to return a list
object, so this may causes problems: e.g. exception for "+" with
another list object.

this patch ensures that '_files' of 'exact' match objects is a list
object.

for non 'exact' match objects, parsing specified 'pattern' already
ensures that it it a&lt;/pre&gt;</description>
    <dc:creator>FUJIWARA Katsunori</dc:creator>
    <dc:date>2012-05-22T15:45:28</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50453">
    <title>Re: [PATCH 2 of 2 v2] hg-ssh: more flexible permissions for hg-ssh</title>
    <link>http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50453</link>
    <description>&lt;pre&gt;
I believe a prepushkey hook should be added here as well. Also, I'd suggest
using "hooks.prechangegroup.hg-ssh", to add a bit more information to the
error message.

BTW, an alternative approach could be adding a --user parameter to hg-ssh, to
check it against web.deny_push / web.allow_push for authorization. This would
be simpler for users: each ssh key would simply authenticate a single user,
leaving authorization to the existing (and documented) configuration mechanisms.

Regards,
Wagner


(...)
&lt;/pre&gt;</description>
    <dc:creator>Wagner Bruna</dc:creator>
    <dc:date>2012-05-22T14:38:44</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50452">
    <title>Upcoming redo of patch to incrementally update branchheads cache</title>
    <link>http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50452</link>
    <description>&lt;pre&gt;Hi Matt,
I'm about to send out a new version of the patch to incrementally update the branchheads cache.  It merits some scrutiny - I think it works this time and I've identified and fixed the bug that you observed, but it's tricky code.  Any suggestions on further tests and stuff like that are also welcome.
Josh
&lt;/pre&gt;</description>
    <dc:creator>Joshua Redstone</dc:creator>
    <dc:date>2012-05-22T13:53:00</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50451">
    <title>[PATCH v3] strip: incrementally update the branchheads cache after astrip</title>
    <link>http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50451</link>
    <description>&lt;pre&gt;# HG changeset patch
# User Joshua Redstone &amp;lt;joshua.redstone&amp;lt; at &amp;gt;fb.com&amp;gt;
# Date 1337370347 25200
# Node ID 67cce9995dc429430e23c170fb13772089510a98
# Parent  d0b9ebba41e9a1733294d5fa1b497ada5eda93c8
strip: incrementally update the branchheads cache after a strip

This function augments strip to incrementally update the branchheads cache
rather than recompute it from scratch.  This speeds up the performance of strip
and rebase on repos with long history.  The performance optimization only
happens if the revisions stripped are all on the same branch and the parents of
the stripped revisions are also on that same branch.

This also fixes a small performance bug in localrepo._updatebranchcache.  That
function would iterate over new candidate heads in order from oldest to newest,
in contrast to the comment that observes that iterating from newest to oldest
results in fewer pases over the set of reachable nodes.

This adds a few test cases, particularly one that reproduces the extra heads
that mpm observed.

diff -r d&lt;/pre&gt;</description>
    <dc:creator>Joshua Redstone</dc:creator>
    <dc:date>2012-05-22T13:54:37</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50450">
    <title>Re: test-commandserver.py fails on Windows MSYS</title>
    <link>http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50450</link>
    <description>&lt;pre&gt;
Possibly. My computer happens to be a quite realistic environment for
running the testsuite on Windows, as almost everyone using mercurial on
Windows will have a hg.exe in his or her PATH. For example, TortoiseHg
installs such a thing.

Perhaps I'll investigate that later, thanks for the tip. But I'm not
terribly interested in the command server myself.
&lt;/pre&gt;</description>
    <dc:creator>Adrian Buehlmann</dc:creator>
    <dc:date>2012-05-22T13:10:44</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50449">
    <title>Re: [PATCH 1 of 1 STABLE] tests: adjust hghave for MSYS on Windows</title>
    <link>http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50449</link>
    <description>&lt;pre&gt;
Exactly. I have these locally installed, because I need them for other
reasons. And I would like to run the testsuite on my local Workhorse
Windows 7 install, if you don't mind.

And the likelyhood that other Windows people have installed these tools
is pretty big too.

If we want them to give up on first try, then we've done a pretty good job.


I certainly don't consider myself as lead windows developer.


I probably could, but I'm not interested currently.


I'm definitely not interested in investigating that. I think it suffices
that the git I have installed here causes the testsuite to fail.


The testsuite hangs forever, if I have p4 perforce client installed
locally. Which I had to do just recently in order to access a very old
server.

{{{At which occasion I happend to find out, that the p4v client tool
reported that our perforce server is tool old to work with that version
of the client. That's what you get from Perforce. }}}


Ok. I'm not interested in digging deeper here. Feel free to drop this p&lt;/pre&gt;</description>
    <dc:creator>Adrian Buehlmann</dc:creator>
    <dc:date>2012-05-22T12:42:07</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50448">
    <title>Re: [PATCH 1 of 1 STABLE] tests: adjust hghave for MSYS on Windows</title>
    <link>http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50448</link>
    <description>&lt;pre&gt;
FWIW: I (and the buildbot) doesn't need these changes. That might be 
because these tools haven't been installed.

We obviously have to keep the balance between getting as good test 
coverage as possible and trying to run tests that will fail for various 
other reasons. I have in the past disabled too many tests just to get 
something that can run without failure, but we could consider tightening 
it up now when we are getting closer to something that works in several 
setups.

I assume that you as windows user and lead windows developer better can 
make that trade-off than me ... but I will add some comments anyway:


The msgfmt from msys doesn't crash for me. Could you investigate why it 
crashes for you?

test-i18n.t will however fail - apparently because the only way to 
change the locale on windows is with a global setting? It would be nice 
if it could be controlled with an environment setting somehow - that 
would be convenient both for users and for testing.

Would it be feasible to make it work ins&lt;/pre&gt;</description>
    <dc:creator>Mads</dc:creator>
    <dc:date>2012-05-22T12:12:03</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50447">
    <title>Re: test-commandserver.py fails on Windows MSYS</title>
    <link>http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50447</link>
    <description>&lt;pre&gt;
I don't see that failure.

Could it be caused by a frozen hg.exe or a different python interpreter 
on your system?

/Mads
&lt;/pre&gt;</description>
    <dc:creator>Mads</dc:creator>
    <dc:date>2012-05-22T11:17:44</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50446">
    <title>Re: test-mq-strip.t fails on Windows MSYS - bookmarks not updated</title>
    <link>http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50446</link>
    <description>&lt;pre&gt;
The parameter in
     repo._writebookmarks(marks)
is unused. That seems suspicious. Explicitly setting
     repo._bookmarks = marks
in mq.py before writing bookmarks do that .hg/bookmarks is updated again.

I don't know why it works on unix. Perhaps some side effect of different 
fstats and thus different cache reloading that do that the marks are 
modified in place and thus rewritten?

(((
btw: Why do we have ui.write "bookmark '%s' deleted" - that is what the 
user explicitly requested, so I would expect that Mercurial did it silently.

It also seems "interesting" that a strip of bookmark referencing a 
non-leaf revision remove the bookmark but doesn't strip anything and 
aborts. I would expect it to either fail completely (preferred) or just 
remove the bookmark and return with success (less preferred).
)))

/Mads

&lt;/pre&gt;</description>
    <dc:creator>Mads</dc:creator>
    <dc:date>2012-05-22T10:39:14</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50445">
    <title>Re: Heads up: the bug tracker has moved</title>
    <link>http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50445</link>
    <description>&lt;pre&gt;Hi, Bryan.

At Sat, 12 May 2012 05:07:24 -0700,
Bryan O'Sullivan wrote:


Bugzilla seems not to post emails to devel-ml for notification of new
issues after bug #3456.

Is this new policy of issue tracking for Mercurial ?

----------------------------------------------------------------------
[FUJIWARA Katsunori]                             foozy&amp;lt; at &amp;gt;lares.dti.ne.jp
&lt;/pre&gt;</description>
    <dc:creator>FUJIWARA Katsunori</dc:creator>
    <dc:date>2012-05-22T10:00:47</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50444">
    <title>Re: [PATCH 3 of 3 STABLE V2] doc: add explanation about Mercurialspecific escaping for subpaths</title>
    <link>http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50444</link>
    <description>&lt;pre&gt;
At Mon, 21 May 2012 11:22:02 +0200,
Mads wrote:

OK, I'll add so.


Yes, I also think this should be fixed.

But as you also described above (and in previous our discussion), such
fix will break backward compatibility.

So, I think that (1) explain the problem about using '\' in
'replacement' of subpath section to warn not to use it at first, and
then (2) fix it after some (major or minor) releases.

# BTW, for (1), should I add the code to show warning message when '\'
# is used in 'replacement' on win ?

But should I both fix this and omit the explanation about it at same
time ?

----------------------------------------------------------------------
[FUJIWARA Katsunori]                             foozy&amp;lt; at &amp;gt;lares.dti.ne.jp
&lt;/pre&gt;</description>
    <dc:creator>FUJIWARA Katsunori</dc:creator>
    <dc:date>2012-05-22T10:00:02</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50443">
    <title>test-mq-strip.t fails on Windows MSYS</title>
    <link>http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50443</link>
    <description>&lt;pre&gt;using d0b9ebba41e9 from default

--- c:\users\adi\hgrepos\hg-main\tests\test-mq-strip.t
+++ c:\users\adi\hgrepos\hg-main\tests\test-mq-strip.t.err
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -458,6 +458,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
   $ hg bookmarks
      B                         9:ff43616e5d0f
      delete                    6:2702dd0c91e7
+   * todelete                  8:d62d843c9a01
   $ hg strip -B delete
   saved backup bundle to $TESTTMP/bookmarks/.hg/strip-backup/*-backup.hg (glob)
   bookmark 'delete' deleted


This test failure first appears with:

  changeset:   16718:3290e24bb3f0
  parent:      16716:0311a6abd38a
  user:        David Soria Parra &amp;lt;dsp&amp;lt; at &amp;gt;php.net&amp;gt;
  date:        Sun May 13 16:39:40 2012 +0200
  summary:     strip: introduce -B option to remove a bookmark
&lt;/pre&gt;</description>
    <dc:creator>Adrian Buehlmann</dc:creator>
    <dc:date>2012-05-22T08:38:52</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50442">
    <title>test-commandserver.py fails on Windows MSYS</title>
    <link>http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50442</link>
    <description>&lt;pre&gt;using stable 0a730d3c5aae

--- c:\users\adi\hgrepos\hg-main\tests\test-commandserver.py.out
+++ c:\users\adi\hgrepos\hg-main\tests\test-commandserver.py.err
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -87,9 +87,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 testing hookoutput:

  runcommand --config hooks.pre-identify=python:test-commandserver.hook id
-hook talking
-now try to read something: 'some input'
-eff892de26ec tip
+abort: pre-identify hook is invalid (import of "test-commandserver" failed)

 testing outsidechanges:


&lt;/pre&gt;</description>
    <dc:creator>Adrian Buehlmann</dc:creator>
    <dc:date>2012-05-22T08:17:59</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50441">
    <title>[PATCH 2 of 2] config: use util.recompile to compile regexps</title>
    <link>http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50441</link>
    <description>&lt;pre&gt;# HG changeset patch
# User Bryan O'Sullivan &amp;lt;bryano&amp;lt; at &amp;gt;fb.com&amp;gt;
# Date 1337658867 25200
# Node ID c64683fa6e52debe940742216b865855d5f4f600
# Parent  a21cfc39cd5f2d1745f26565cf4999a21c10d8ff
config: use util.recompile to compile regexps

diff --git a/mercurial/config.py b/mercurial/config.py
--- a/mercurial/config.py
+++ b/mercurial/config.py
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -7,7 +7,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 
 from i18n import _
 import error, util
-import re, os, errno
+import os, errno
 
 class sortdict(dict):
     'a simple sorted dictionary'
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -101,13 +101,13 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; class config(object):
             self._source.pop((section, item), None)
 
     def parse(self, src, data, sections=None, remap=None, include=None):
-        sectionre = re.compile(r'\[([^\[]+)\]')
-        itemre = re.compile(r'([^=\s][^=]*?)\s*=\s*(.*\S|)')
-        contre = re.compile(r'\s+(\S|\S.*\S)\s*$')
-        emptyre = re.compile(r'(;|#|\s*$)')
-        commentre = re.compile(r'(;|#)')
-        unsetre = re.compile(r'%unset\s+(\S+)')
-        includere = re.compile(r'%include\s+(\S|\S.*&lt;/pre&gt;</description>
    <dc:creator>Bryan O'Sullivan</dc:creator>
    <dc:date>2012-05-22T03:54:45</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50440">
    <title>[PATCH 1 of 2] matcher: use re2 bindings if available</title>
    <link>http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50440</link>
    <description>&lt;pre&gt;# HG changeset patch
# User Bryan O'Sullivan &amp;lt;bryano&amp;lt; at &amp;gt;fb.com&amp;gt;
# Date 1337658865 25200
# Node ID a21cfc39cd5f2d1745f26565cf4999a21c10d8ff
# Parent  cb5439b97c0a1a77220b9f3f7b580d4fbc38da80
matcher: use re2 bindings if available

There are two sets of Python re2 bindings available on the internet;
this code works with both.

Using re2 can greatly improve "hg status" performance when a .hgignore
file becomes even modestly complex.

Example: "hg status" on a clean tree with 134K files, where "hg
debugignore" reports a regexp 4256 bytes in size.

  no .hgignore: 1.76 sec
  Python re:    2.79
  re2:          1.82

The overhead of regexp matching drops from 1.03 seconds with stock
re to 0.06 with re2.

(For comparison, a git repo with the same contents and .gitignore
file runs "git status -s" in 1.71 seconds, i.e. only slightly faster
than hg with re2.)

diff --git a/mercurial/match.py b/mercurial/match.py
--- a/mercurial/match.py
+++ b/mercurial/match.py
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -9,6 +9,14 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; import re
 import scmutil, util, fileset
 fr&lt;/pre&gt;</description>
    <dc:creator>Bryan O'Sullivan</dc:creator>
    <dc:date>2012-05-22T03:54:44</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50439">
    <title>RE: [PATCH 2 of 2 v2] hg-ssh: more flexible permissions for hg-ssh</title>
    <link>http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50439</link>
    <description>&lt;pre&gt;

The use case is that I need to grant a single (service) unix user both read-write and read-only access based on which key they use.  We use our existing host configuration management tool (cfengine) to deploy the least privileged key we need to a given production host.  Getting all of the things that use this to change unix users would be a second pain in the ass on top of converting them to mercurial.  It also wouldn't be that easy to sell to our systems management folks, since they don't really like new unix users in prod.

Not really, or at least not in my environment.  It's already pretty easy to configure permissions when you can differentiate between users/groups and we've done that.  The utility of the --read-only flag is when you need different levels of access but don't want to create a bunch of unix users.

Mostly I just don't want to manage the globs.  Right now, all it takes to create a new repo is creating a new repo.  I don't want to make that create a new repo and add it to this authorized_k&lt;/pre&gt;</description>
    <dc:creator>David Schleimer</dc:creator>
    <dc:date>2012-05-22T01:46:43</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50438">
    <title>Re: [PATCH 2 of 2 v2] hg-ssh: more flexible permissions for hg-ssh</title>
    <link>http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50438</link>
    <description>&lt;pre&gt;
I am not sure what the use case for read-only is - it seems like the 
same control could be achieved with sshd configuration and unix permissions?

I also notice that the configuration is quite different from the hgweb 
allow_push / deny_push functionality. That might be ok, but I wonder if 
it wouldn't be more useful if the configuration was per repo and with 
more fine grained per user access.

The all-repos functionality seems more questionable. It seems like it 
will allow a remote user to probe any file system path - for example in 
/proc and on nfs automounts and temporary repos in /tmp. That is quite 
different from the completely locked down sandbox the usual 
white-listing gives and might have unexpected security implications. I 
think we will  have to sanitize the paths ... but that is non-trivial 
and we would rather avoid doing that. But again: What is the usecase for 
this? Do you have a setup where whitelisting based on shell globbing 
isn't feasible?

Now we have two features in one patch. I &lt;/pre&gt;</description>
    <dc:creator>Mads</dc:creator>
    <dc:date>2012-05-22T01:02:54</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50437">
    <title>[PATCH 2 of 2 v2] hg-ssh: more flexible permissions for hg-ssh</title>
    <link>http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50437</link>
    <description>&lt;pre&gt;# HG changeset patch
# User David Schleimer &amp;lt;dschleimer&amp;lt; at &amp;gt;fb.com&amp;gt;
# Date 1337642370 25200
# Node ID 6be86d4b3a0c424272600164500b6329b43ab946
# Parent  b52b7fe0dd08b257dfc69c8a5de503cec94f4b76
hg-ssh: more flexible permissions for hg-ssh

This allows more flexible control over the permissions granted to a
ssh key when using hg-ssh as the command in an authorized_keys file.

Specifically, it allows you to restrict a key to read-only access, as
well as allowing you to grant a key access to any repo, instead of
needing to whitelist repos.

diff --git a/contrib/hg-ssh b/contrib/hg-ssh
--- a/contrib/hg-ssh
+++ b/contrib/hg-ssh
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -35,9 +35,21 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 
 def main():
     cwd = os.getcwd()
+    allrepos = False
+    readonly = False
+    args = sys.argv[1:]
+    while len(args):
+        if args[0] == '--all-repos':
+            allrepos = True
+            args.pop(0)
+        elif args[0] == '--read-only':
+            readonly = True
+            args.pop(0)
+        else:
+            break
     allowed_paths = [os.pat&lt;/pre&gt;</description>
    <dc:creator>David Schleimer</dc:creator>
    <dc:date>2012-05-21T23:29:25</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50436">
    <title>[PATCH 1 of 2 v2] hg-ssh: refactor to have main() method</title>
    <link>http://permalink.gmane.org/gmane.comp.version-control.mercurial.devel/50436</link>
    <description>&lt;pre&gt;# HG changeset patch
# User David Schleimer &amp;lt;dschleimer&amp;lt; at &amp;gt;fb.com&amp;gt;
# Date 1337642370 25200
# Node ID b52b7fe0dd08b257dfc69c8a5de503cec94f4b76
# Parent  d0b9ebba41e9a1733294d5fa1b497ada5eda93c8
hg-ssh: refactor to have main() method

Refactor hg-ssh to have a main() function instead of a bunch of
top-level statements.

diff --git a/contrib/hg-ssh b/contrib/hg-ssh
--- a/contrib/hg-ssh
+++ b/contrib/hg-ssh
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -33,25 +33,31 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 
 import sys, os, shlex
 
-cwd = os.getcwd()
-allowed_paths = [os.path.normpath(os.path.join(cwd, os.path.expanduser(path)))
-                 for path in sys.argv[1:]]
-orig_cmd = os.getenv('SSH_ORIGINAL_COMMAND', '?')
-try:
-    cmdargv = shlex.split(orig_cmd)
-except ValueError, e:
-    sys.stderr.write('Illegal command "%s": %s\n' % (orig_cmd, e))
-    sys.exit(255)
+def main():
+    cwd = os.getcwd()
+    allowed_paths = [os.path.normpath(os.path.join(cwd,
+                                                   os.path.expanduser(path)))
+                     for path in sys.argv[1:]]
+    &lt;/pre&gt;</description>
    <dc:creator>David Schleimer</dc:creator>
    <dc:date>2012-05-21T23:29:24</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.comp.version-control.mercurial.devel">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.comp.version-control.mercurial.devel</link>
  </textinput>
</rdf:RDF>

