[PATCH 2 of 2] httpclient: import revision fc731618702a of py-nonblocking-http

Augie Fackler durin42 at gmail.com
Wed May 18 07:54:22 CDT 2011


On May 18, 2011, at 4:24 AM, Martin Geisler wrote:
> 
> Matt Mackall <mpm at selenic.com> writes:
> 
>> On Tue, 2011-05-17 at 13:36 -0500, Augie Fackler wrote:
>>> # HG changeset patch
>>> # User Augie Fackler <durin42 at gmail.com>
>>> # Date 1305646083 18000
>>> # Node ID 886fed778423d4dfc0f95fd7684a0c144cd934a5
>>> # Parent  8689945a9491d807e3a7154c544166a82423efa3
>>> httpclient: import revision fc731618702a of py-nonblocking-http
>> 
>> These are queued, thanks.
> 
> I think we should think about making the httpclient a subrepo.

You can't do that given the current structure - py-nonblocking-http is its own project, and as such the repo root isn't the python module root. I'm also highly resistant to changing py-nonblocking-http's layout, as there's likely to be more scaffolding in there as I get good end-to-end comprehensive tests written.

> 
> I agree that we should not add unnecessary pain for ourselves, but we
> now have a genuine third-party library that we depend on. It would be
> good for us to practise the subrepo workflow where, bugfixes would flow
> into our repo as patches that update the .hgsubstate file.
> 
> If we have done that, then we would have found out that even this simple
> workflow does not work! That is, when a patch updates .hgsubstate, we
> forget to check if any subrepos need updating.
> 
> This particular case might be easy to fix, but I'm want us to look at
> the bigger picture here: I feel that when we don't use a feature daily,
> then it will never be truely polished.
> 
> 
> Setup repo:
> 
>  $ hg init third-party
>  $ cd third-party
>  $ touch a
>  $ hg commit -A -m a
>  adding a
>  $ cd ..
> 
>  $ hg init repo
>  $ cd repo
>  $ hg clone $TESTTMP/third-party sub
>  updating to branch default
>  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
>  $ echo "sub = $TESTTMP/third-party" > .hgsub
>  $ hg commit -A -m 'add subrepo'
>  adding .hgsub
>  committing subrepository sub
>  $ cd ..
> 
> Make change in a clone:
> 
>  $ hg clone repo clone
>  updating to branch default
>  cloning subrepo sub from $TESTTMP/third-party
>  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
> 
>  $ cd clone/sub
>  $ touch b
>  $ hg commit -A -m b
>  adding b
>  $ hg push
>  pushing to $TESTTMP/third-party
>  searching for changes
>  adding changesets
>  adding manifests
>  adding file changes
>  added 1 changesets with 1 changes to 1 files
>  $ cd ..
> 
> Commit updated subrepo and prepare patch for email:
> 
>  $ hg commit -m 'update subrepo'
>  committing subrepository sub
>  $ hg export tip > ../p
>  $ cd ..
> 
> Import patch:
> 
>  $ cd repo
>  $ hg import ../p
>  applying ../p
> 
> Subrepo is now inconsistent:
> 
>  $ ls sub
>  a
>  $ hg status -S
>  warning: error "unknown revision '0e067c57feba1a5694ca4844f05588bb1bf82342'" in subrepository "sub"
> 
> Fix subrepo, note the unnecessary prompt:
> 
>  $ hg update null
>   local changed .hgsubstate which remote deleted
>  use (c)hanged version or (d)elete? c
>  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
> 
>  $ hg update
>  pulling subrepo sub from $TESTTMP/third-party
>  searching for changes
>  adding changesets
>  adding manifests
>  adding file changes
>  added 1 changesets with 1 changes to 1 files
>  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
> 
> Subrepo is now in sync:
> 
>  $ ls sub
>  a
>  b





More information about the Mercurial-devel mailing list