Edgewall Software

Ticket #6474 (new enhancement)

Opened 12 months ago

Last modified 12 months ago

svn:externals displayed as folder in listing

Reported by: cjunge@… Owned by: cboos
Priority: normal Milestone: 2.0
Component: version control/browser Version:
Severity: minor Keywords: svn:externals
Cc:

Description

It would be nice if it was an option to enable svn:externals (& possibly other version control systems with the same feature) to be displayed inline in the folder/file listing.

Currently the svn:externals is listed at the bottom of the listing for the folder it's applied to. This link can be controlled using the TracIni settings to point directly to the correct repository.

The listing of the folder the external is linked to does not show any reference to the external. This is confusing as a checkout will copy the external into the WC, but there is no visual representation of this in Trac. A folder with a link icon (maybe) and information about the external (& link if configured correctly) would be nice.

Cameron

Attachments

Change History

  Changed 12 months ago by cboos

  • keywords svn:externals added
  • milestone set to 2.0

That would be quite involved, but doable I guess.

The main issue would be some added complexity to SubversionRepository.get_node which would have to decide if the given path actually exist in the repository or is the "extended" repository.

See the canonical example:

$ svn propget svn:externals calc
third-party/sounds             http://sounds.red-bean.com/repos
third-party/skins              http://skins.red-bean.com/repositories/skinproj
third-party/skins/toolkit -r21 http://svn.red-bean.com/repos/skin-maker

When listing the calc folder, it's not that complex to add a special entry for third-party. What's more problematic is for expanding third-party itself: 'calc/third-party' doesn't exist as such in the repository and one has to go upward until a svn:externals is found on a "real" node, then downward to locate the specified entry.

  Changed 12 months ago by osimons

In addition there are the issues related to authentication and authorization of access to remote repository - Trac will not know how to do that on behalf of each user. This is intended to be resolved by user at checkout, and I see no obvious way of doing that - other than to limit the feature to anonomymous read only.

follow-up: ↓ 4   Changed 12 months ago by cboos

Well, AFAICT, we were not talking of accessing the remote repository, only how to best display the svn:externals information available in the local repository.

i.e. in the example above, Trac would ideally show (using expanded display):

  • (D) calc
    • ... regular calc entries
    • (R) third-party
      • (R) sounds
      • (R) skins
        • (R) toolkit
    • ... remaining regular calc entries

where (D) stands for the folder icon and (R) for a "remote folder" icon. All this information is normally available to users having the rights to look at "calc", if I'm not mistaken, as it's the content of a property on that node.

in reply to: ↑ 3 ; follow-up: ↓ 5   Changed 12 months ago by osimons

Replying to cboos:

Well, AFAICT, we were not talking of accessing the remote repository, only how to best display the svn:externals information available in the local repository.

Ah. My misunderstanding. Just parsing and displaying 'inline' would have no such issues, of course.

in reply to: ↑ 4   Changed 12 months ago by cjunge@…

Replying to osimons:

Replying to cboos:

Well, AFAICT, we were not talking of accessing the remote repository, only how to best display the svn:externals information available in the local repository.

Ah. My misunderstanding. Just parsing and displaying 'inline' would have no such issues, of course.

That is exactly what I was meaning. Actually accessing the remote repository wouldn't be feasible (probably), but displaying inline would make it obvious that the folders are part of the repository.

Of course, it might be required to walk up the folder tree to obtain all the externals, but that could be cached.

Add/Change #6474 (svn:externals displayed as folder in listing)

Author



Change Properties
<Author field>
Action
as new
as The resolution will be set. Next status will be 'closed'
to The owner will change from cboos. Next status will be 'new'
The owner will change from cboos to anonymous. Next status will be 'assigned'
 
Note: See TracTickets for help on using tickets.