monotone-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Monotone-devel] "mtn clone" hangs


From: Ralf S. Engelschall
Subject: Re: [Monotone-devel] "mtn clone" hangs
Date: Mon, 12 Nov 2007 09:19:29 +0100
User-agent: Mutt/1.5.17 OpenPKG/CURRENT (2007-11-01)

On Mon, Nov 12, 2007, William Uther wrote:

> On 11/11/2007, at 8:57 PM, Ralf S. Engelschall wrote:
>>
>> I tried to use "mtn clone", but in all my tests it hangs endless:
>>
>> | $ /usr/opkg/bin/mtn clone -b FreeBSD.snapshot.src
>> file:///v/freebsd/web/x/freebsd-snapshot.db y
>> | mtn: setting default server to file:///v/freebsd/web/x/freebsd-snapshot.db
>> | mtn: doing anonymous pull
>> | mtn: setting default branch include pattern to 'FreeBSD.snapshot.src'
>> | mtn: connecting to file:///v/freebsd/web/x/freebsd-snapshot.db
>> | mtn: finding items to synchronize:
>>
>> There is no output at all after the "finding items to synchronize". Is
>> this a known bug or do I'm using "mtn clone" incorrectly?
>
> Hrm, it looks like this should work, but it is a weird usage.
>
> If you have a local database (you're using a file:// URL to point at the
> db), why are you using clone rather than checkout?  i.e. are you sure you
> don't just want:
>
> mtn co -b FreeBSD.snapshot.src --db=/v/freebsd/web/x/freebsd-snapshot.db y

Well, I tried "clone" because I wanted to bundle the database and the
workspace together without having to manually move freebsd-snapshot.db
into _MTN/ and edit _MTN/options. Hence I thought let's just use "clone"
on the locally available database. Sure, a perhaps not usual use case,
but nevertheless I did not expect that Monotone hangs ;-)

> Having said that, the clone command should work.  It is essentially a mixed
> command that does 'mtn init', 'mtn pull' and 'mtn co' all at once.

Right. And that's what I wanted to achieve.

> It seems that the 'mtn pull' part is freezing. The first thing I would
> check is if the commands work individually. Can you execute these
> three commands:
>
> mtn db init --db=local.db
> mtn pull --db=local.db file:///v/freebsd/web/x/freebsd-snapshot.db
> FreeBSD.snapshot.src
> mtn co --db=local.db FreeBSD.snapshot.src y

Ah, got it: "mtn pull" already hangs, too!

| $ mtn db init --db=local.db
| $ mtn pull --db=local.db file:///v/freebsd/web/snapshot.db 
FreeBSD.snapshot.src
| mtn: setting default branch include pattern to 'FreeBSD.snapshot.src'
| mtn: setting default branch exclude pattern to ''
| mtn: doing anonymous pull
| mtn: connecting to file:///v/freebsd/web/snapshot.db
| mtn: finding items to synchronize:
| [...no more outputs...]

When repeating this under --debug the last lines of debug output are:

| [...]
| mtn: noting key 'address@hidden' = '8ad89008af9db804b7cc26045f9c0f4b1e059c7a' 
to send
| mtn: ticks: c="certificates"/256, k="keys"/1, r="revisions"/64
| mtn: ckr
| mtn: i/o probe with 0 armed
| mtn: wrote 3 bytes to fd -1 (peer stdio)
| mtn: i/o probe with 0 armed
| mtn: read 3 bytes from fd -1 (peer file:///v/freebsd/web/snapshot.db)
| mtn: processing 0 byte input buffer from peer 
file:///v/freebsd/web/snapshot.db
| mtn: queueing refinement query of epoch node '', level 0
| mtn: Beginning epoch refinement on client.
| mtn: wrote 31 bytes to fd -1 (peer file:///v/freebsd/web/snapshot.db)
| mtn: read 31 bytes from fd -1 (peer stdio)
| mtn: processing 0 byte input buffer from peer stdio
| mtn: processing refine cmd for epoch node at level 0
| mtn: queueing refinement response of epoch node '', level 0
| mtn: i/o probe with 0 armed
| mtn: wrote 51 bytes to fd -1 (peer stdio)
| mtn: i/o probe with 0 armed

> My guess is that the second command will freeze in the same place as
> 'clone' did.

Yes, exactly!

> And then I'll ask if you're using Windows...

<grin> No, definitely "NO.

> file:// access
> to local repositories forks a sub-process to read the file, and that
> sometimes gets wedged on Windows.  If that is the case, then you've come
> across a 'known issue' which, as far as I know, noone is actively working
> on.  Try avoiding file:// URLs.  Which leads us back to what I said first;
> why are you using clone and not checkout?

As said above, the "clone" use is not a *have to* here. I just wanted
to be lazy in bundling database and workspace. I'm already working with
this repository very well after I've done the "checkout" and then moved
the repository into the workspace manually by editing _MTN/.

                                       Ralf S. Engelschall
                                       address@hidden
                                       www.engelschall.com





reply via email to

[Prev in Thread] Current Thread [Next in Thread]