separate lookup dictionary

Bug #760649 reported by Jelmer Vernooij
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Bazaar Externals plugin
Confirmed
Undecided
Unassigned

Bug Description

bzr-externals currently uses a file in the versioned tree to find information about externals.

It would be neat if it supported an external versioned file to look up the externals, e.g. a file in .bzr/externals/.

This would make it possible for bzr-svn to import svn:externals information without having to change its mapping format.

Revision history for this message
Alexander Belchenko (bialix) wrote : Re: [Bug 760649] [NEW] separate lookup dictionary

Jelmer Vernooij пишет:
> bzr-externals currently uses a file in the versioned tree to find
> information about externals.
>
> It would be neat if it supported an external versioned file to look up
> the externals, e.g. a file in .bzr/externals/.

What do you mean by "external versioned file"?

Revision history for this message
Eugene Tarasenko (etarasenko) wrote :

I agree. This file .bzr/externals/svn created by bzr-svn will be read-only for bzr-externals plugin or user can nodify it from commands?

Revision history for this message
Jelmer Vernooij (jelmer) wrote :

On Thu, 2011-04-14 at 13:10 +0000, Alexander Belchenko wrote:
> Jelmer Vernooij пишет:
> > bzr-externals currently uses a file in the versioned tree to find
> > information about externals.
> >
> > It would be neat if it supported an external versioned file to look up
> > the externals, e.g. a file in .bzr/externals/.
> What do you mean by "external versioned file"?
A knit or something like that which has a history parallel to the
repository revision history.

Cheers,

Jelmer

Revision history for this message
Jelmer Vernooij (jelmer) wrote : Re: [Bug 760649] Re: separate lookup dictionary

On Thu, 2011-04-14 at 13:17 +0000, Eugene Tarasenko wrote:
> I agree. This file .bzr/externals/svn created by bzr-svn will be read-
> only for bzr-externals plugin or user can nodify it from commands?
I'm not sure, bzr-svn would ideally just call an API in bzr-externals to
update this file. I guess whatever works for bzr-externals works for
bzr-svn.

Cheers,

Jelmer

Revision history for this message
Alexander Belchenko (bialix) wrote : Re: [Bug 760649] [NEW] separate lookup dictionary

Jelmer Vernooij пишет:
> On Thu, 2011-04-14 at 13:10 +0000, Alexander Belchenko wrote:
>> Jelmer Vernooij пишет:
>>> bzr-externals currently uses a file in the versioned tree to find
>>> information about externals.
>>>
>>> It would be neat if it supported an external versioned file to look up
>>> the externals, e.g. a file in .bzr/externals/.
>> What do you mean by "external versioned file"?
> A knit or something like that which has a history parallel to the
> repository revision history.

Do you mean something like loom tracks its history? I wonder how it
should work on branch/pull/push?

Revision history for this message
Jelmer Vernooij (jelmer) wrote :

On Thu, 2011-04-14 at 13:39 +0000, Alexander Belchenko wrote:
> Jelmer Vernooij пишет:
> > On Thu, 2011-04-14 at 13:10 +0000, Alexander Belchenko wrote:
> >> Jelmer Vernooij пишет:
> >>> bzr-externals currently uses a file in the versioned tree to find
> >>> information about externals.
> >>>
> >>> It would be neat if it supported an external versioned file to look up
> >>> the externals, e.g. a file in .bzr/externals/.
> >> What do you mean by "external versioned file"?
> > A knit or something like that which has a history parallel to the
> > repository revision history.
> Do you mean something like loom tracks its history?
I think that's different. Looms are a custom branch format, what I'm
talking about is independent of the branch format.

> I wonder how it
> should work on branch/pull/push?
It would need some sort of fancy hook to properly pull/push/branch
between bzr branches.

Cheers,

Jelmer

Revision history for this message
Eugene Tarasenko (etarasenko) wrote : Re: [Bug 760649] Re: separate lookup dictionary

2011/4/14 Jelmer Vernooij <email address hidden>

> On Thu, 2011-04-14 at 13:17 +0000, Eugene Tarasenko wrote:
> > I agree. This file .bzr/externals/svn created by bzr-svn will be read-
> > only for bzr-externals plugin or user can nodify it from commands?
> I'm not sure, bzr-svn would ideally just call an API in bzr-externals to
> update this file. I guess whatever works for bzr-externals works for
> bzr-svn.
>

You right need API, because now bzr-externals used hooks, but on the
post_pull_hook in working dir not have any files and I read config from
repository.

Changed in bzr-externals:
status: New → Confirmed
Revision history for this message
Alexander Belchenko (bialix) wrote : Re: [Bug 760649] [NEW] separate lookup dictionary

Jelmer Vernooij пишет:
> On Thu, 2011-04-14 at 13:39 +0000, Alexander Belchenko wrote:
>> Jelmer Vernooij пишет:
>>> On Thu, 2011-04-14 at 13:10 +0000, Alexander Belchenko wrote:
>>>> Jelmer Vernooij пишет:
>>>>> bzr-externals currently uses a file in the versioned tree to find
>>>>> information about externals.
>>>>>
>>>>> It would be neat if it supported an external versioned file to look up
>>>>> the externals, e.g. a file in .bzr/externals/.
>>>> What do you mean by "external versioned file"?
>>> A knit or something like that which has a history parallel to the
>>> repository revision history.
>> Do you mean something like loom tracks its history?
> I think that's different. Looms are a custom branch format, what I'm
> talking about is independent of the branch format.

I don't think it's too different. IIRC loom keeps its own history as
hidden (dead) head in the same bzr repository.

IIUC your intent you want to have parallel history for .externals
settings in the same repo, doesn't you? Or maybe you have in mind
separate branch with its own history in .bzr/externals?

I've tried to keep the history of the project in separate directory in
early days of scmproj plugin. It was big failure point for me.

>> I wonder how it
>> should work on branch/pull/push?
> It would need some sort of fancy hook to properly pull/push/branch
> between bzr branches.

That "fancy" part is most difficult part, IMO. Do you plan to implement
it yourself as core bzr dev?

--
All the dude wanted was his rug back

Revision history for this message
Jelmer Vernooij (jelmer) wrote :

On Thu, 2011-04-14 at 15:31 +0000, Alexander Belchenko wrote:
> Jelmer Vernooij пишет:
> > On Thu, 2011-04-14 at 13:39 +0000, Alexander Belchenko wrote:
> >> Jelmer Vernooij пишет:
> >>> On Thu, 2011-04-14 at 13:10 +0000, Alexander Belchenko wrote:
> >>>> Jelmer Vernooij пишет:
> >>>>> bzr-externals currently uses a file in the versioned tree to find
> >>>>> information about externals.
> >>>>>
> >>>>> It would be neat if it supported an external versioned file to look up
> >>>>> the externals, e.g. a file in .bzr/externals/.
> >>>> What do you mean by "external versioned file"?
> >>> A knit or something like that which has a history parallel to the
> >>> repository revision history.
> >> Do you mean something like loom tracks its history?
> > I think that's different. Looms are a custom branch format, what I'm
> > talking about is independent of the branch format.
>
> I don't think it's too different. IIRC loom keeps its own history as
> hidden (dead) head in the same bzr repository.
I don't want to put it in the same repository, that would require a new
format which I'd like to avoid.

> IIUC your intent you want to have parallel history for .externals
> settings in the same repo, doesn't you? Or maybe you have in mind
> separate branch with its own history in .bzr/externals?
Parallel history with .externals in a separate file in .bzr/externals.
I don't think it should be a branch. It's just a single file, much like
e.g. an inventory.

> I've tried to keep the history of the project in separate directory in
> early days of scmproj plugin. It was big failure point for me.
What do you mean with history exactly in this case?

> >> I wonder how it
> >> should work on branch/pull/push?
> > It would need some sort of fancy hook to properly pull/push/branch
> > between bzr branches.
> That "fancy" part is most difficult part, IMO. Do you plan to implement
> it yourself as core bzr dev?
It's on my todo list, but not very high at the moment.

I think this sort of functionality would be useful without the ability
to propagate it though, you can still push/pull between bzr and svn even
without this hook.

CHeers,

Jelmer

Revision history for this message
Eugene Tarasenko (etarasenko) wrote :

> > It would need some sort of fancy hook to properly pull/push/branch
> > between bzr branches.
> That "fancy" part is most difficult part, IMO. Do you plan to implement
> it yourself as core bzr dev?

It would be good on commands branch/co/pull/update that bzr-svn will call
bzr-externals api before any post* hooks. It is possible?

Also, on command checkin you need check .bzr/externals/svn for setting
svn-externals property in repository.

Revision history for this message
Jelmer Vernooij (jelmer) wrote :

On Thu, 2011-04-14 at 17:09 +0000, Eugene Tarasenko wrote:
> > > It would need some sort of fancy hook to properly pull/push/branch
> > > between bzr branches.
> > That "fancy" part is most difficult part, IMO. Do you plan to implement
> > it yourself as core bzr dev?
> It would be good on commands branch/co/pull/update that bzr-svn will call
> bzr-externals api before any post* hooks. It is possible?
If it's a file in .bzr/externals/ and independent (but used by) bzr-svn,
I don't understand why bzr-svn should have this hook.

> Also, on command checkin you need check .bzr/externals/svn for setting
> svn-externals property in repository.
Can you elaborate?

Cheers,

Jelmer

Revision history for this message
Eugene Tarasenko (etarasenko) wrote :

2011/4/15 Jelmer Vernooij <email address hidden>

> > It would be good on commands branch/co/pull/update that bzr-svn will call
> > bzr-externals api before any post* hooks. It is possible?
> If it's a file in .bzr/externals/ and independent (but used by) bzr-svn,
> I don't understand why bzr-svn should have this hook.
>

It is necessary for easy and small modifications in bzr-externals.

> Also, on command checkin you need check .bzr/externals/svn for setting
> > svn-externals property in repository.
> Can you elaborate?
>

You need read user modifications if you want modify svn:externals property
from bzr or yor want organize read-only access to svn properties?

And where now the bzr-svn plugin stores the information of svn properties,
example svn:ignore? Or it not used?

Revision history for this message
Alexander Belchenko (bialix) wrote :

Jelmer Vernooij пишет:
> On Thu, 2011-04-14 at 15:31 +0000, Alexander Belchenko wrote:
>> I've tried to keep the history of the project in separate directory in
>> early days of scmproj plugin. It was big failure point for me.
> What do you mean with history exactly in this case?

The project config never stays the same all the lifetime of the project.
It changed every time we add or remove components to the project, or
even when we move the components inside the project. It looks natural
for me to have the history of those changes stored in bzr.

Add here the real history of the project as snapshot of revids of all
components for the given moment of time when you commit the entire
project -- that what is history of the project for me.

I'm not sure how svn tracks the history of svn:externals. And I'm sure
svn does not have support for taking snapshots of the entire project.

So it's really depends on your intent. If you want just round-trip
between svn and bzr then you can just put .bzr/externals/svn file
or-name-it-somehow-differently.

I suppose in this case you must not mix standard ./.bzrmeta/externals
config and proposed .bzr/externals/svn config.

--
All the dude wanted was his rug back

Revision history for this message
Alexander Belchenko (bialix) wrote :

Jelmer Vernooij пишет:
> On Thu, 2011-04-14 at 15:31 +0000, Alexander Belchenko wrote:
>> I don't think it's too different. IIRC loom keeps its own history as
>> hidden (dead) head in the same bzr repository.
> I don't want to put it in the same repository, that would require a new
> format which I'd like to avoid.

I don't see why it should be new repository format. Really.
Repository is just generic storage. Anybody can put there unrelated
data, as it today works as shared repository for unrelated branches.

--
All the dude wanted was his rug back

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.