[Users] ETK Maxwell checkout failing for McLachlan, KrancNumericalTools

Ian Hinder ian.hinder at aei.mpg.de
Thu May 24 12:05:37 CDT 2012

On 24 May 2012, at 18:44, Ian Hinder wrote:

> Hash: SHA1
> On 24 May 2012, at 18:04, Roland Haas wrote:
>> Hello all,
>>> With an anonymous checkout, you can commit and push.  You have to add
>>> the correct URL to push to: git push <url>, but you can still push.
>>> This is a lot easier than checking out your Cactus tree again in
>>> non-anonymous mode.
>> Also a number of users and maintainers may not be able to check out the
>> whole tree non-anonymously since they don't have write permissions to
>> all of the git/hg repositories (only Carpet is affected I think).
>> Currently that does not seem to include me though :-)
>> There was at one point a discussion about making "-a" in GetComponents
>> the default (assuming there are more users with read only access than
>> developers with read/write access) at
>> http://lists.einsteintoolkit.org/pipermail/users/2011-December/001687.html
>> As far as I can see no clear decision whether to make "-a" the default
>> was reached. At that time the feeling seems to have been that the
>> interactive questioning by GetComponents was sufficient (but that it was
>> broken at that time).
> I would prefer that "-a" was the default.  We always use it in tutorials anyway, and options should be for exceptional cases.  
> We could also make it easier for people to commit from an anonymous checkout.  In Git, the clone operation creates a remote called "origin" which points to the server that was cloned from.  We could make GetComponents create an additional remote called "origin-rw" which used the AUTH_URL, and could be pushed to if you had the correct permissions.  You could then do "git push origin-rw".  How do you commit to a different repository in SVN?  Do you need to use "svn switch", or is there an easier way?  If we add instructions to how to commit from an anonymous checkout, I think we could make anonymous the default.

It looks like git has a config option for specifying both the "url" and the "pushurl" for a remote.  I have not tried this, but I think we could set it up so that pulls always come from the anonymous URL and pushes go to the authenticated URL with

	git remote set-url --push origin carpetgit at carpetcode.org:McLachlan

This adds a "push URL" to the "origin" remote which is used when pushing only.  This would go in GetComponents in the "handle_git" function around line 1382.  So for Git, we don't need a distinction between anonymous and authenticated checkouts.  All checkouts can be anonymous, and people with commit access can just do "git push" when they need to.  

Maybe the other version control systems have a similar feature.

Ian Hinder

More information about the Users mailing list