Arc Forumnew | comments | leaders | submitlogin
Public Arc Git Repositories
4 points by nlavine 5909 days ago | 9 comments
The Arc-F fork brought up the issue that people don't know how to create public git repositories.

I'm not completely sure, but I have good circumstantial evidence that I can do it. I made two new git repositories, one with "git init", and one with "git init --shared", and looked at the .git/config files they produced.

As far as I can tell, you need to go into your .git/config file, and in the "[core]" section, add a line that says "sharedrepository = 1". You might also be able to get the same effect with the "git config" command.

You will also have to set the permissions on everything in your git repository so that everyone can write to them (chmod a+rw, I think).

There's stuff on this in the git-config manual page at http://www.kernel.org/pub/software/scm/git/docs/git-config.html, the git-init manual page at http://www.kernel.org/pub/software/scm/git/docs/git-init.html (look at the --shared option), and the git user's manual at http://www.kernel.org/pub/software/scm/git/docs/user-manual.html (see chapter 4, Sharing Development). None of these completely document what you need to do, but I think you can piece together some information.

If that works, the next question will be how to manage development with separate repositories. I suggest we have one repository with pure implementation-independent Arc code, and then a repository for each implementation (assuming people don't like the single-repository model). If someone can figure out how git-submodule works, the implementations could then all include the pure Arc code as a library module, so they would all get whatever updates were pushed to that automatically.

So, will someone try this and see how it works? If not, we can troubleshoot it. And if it does, we should probably discuss the development setup.



2 points by nex3 5908 days ago | link

For GitHub repos, you have to request public-push access specifically. If you're setting up a repo on your own, it's not an issue of configuration, but of how you serve it (git init --shared just affects the Unix permissions). "git daemon" comes with git and can be configured to allow public push by mucking with the configuration or starting it using "git daemon --enable=recieve-pack".

-----

1 point by nlavine 5908 days ago | link

How do you request public push access?

-----

1 point by nex3 5907 days ago | link

I went to #github on irc.freenode.net and asked defunkt. I'm not sure how often he's on these days, though, so email might be a better bet.

-----

1 point by eds 5909 days ago | link

http://arclanguage.org/item?id=8421 http://repo.or.cz/mob.html

This has the disadvantage that someone needs to merge the mob and main branches regularly, which may make it a little less like a true wiki. But I still think http://repo.or.cz/ is a good option.

-----

1 point by cchooper 5908 days ago | link

Could someone try a push?

http://github.com/cchooper/publictest/tree/master

-----

2 points by nlavine 5908 days ago | link

git push says,

  fatal: protocol error: expected sha/ref, got '
  *********'
  
  You can't push to git://github.com/user/repo.git
  Use git@github.com:user/repo.git
  
  *********'
I don't know why. The config files for my clone of that repository and my clone of the nex3 arc repo appear to be equivalent, although I've never tried pushing to that one (someone who has pushed, please see if your results are different).

I looked in .git/refs/remotes/origin, and the files seemed pretty similar too.

After seeing the message, I tried

  git push git@github.com:cchooper/publictest
but that failed with

  ERROR: Permission to cchooper/publictest denied to noahl.
  fatal: The remote end hung up unexpectedly
I don't know what's going on now. Anyone else? (If you have time, someone please check the github docs too.)

-----

1 point by cchooper 5908 days ago | link

The first issue happens with Anarki too. The default address is read-only.

The second one: could be a setup issue. To push to github you need an account with an SSH key set up, and SSH needs to be configured to associate that key with github.com.

Thanks for trying.

-----

1 point by temp123 5908 days ago | link

If it's this much trouble getting it working on github, maybe it would be worthwhile to try, say, Canonical's [Launchpad][1]---which uses [Bazaar][2]. Both seem pretty well-documented.

[1]: https://launchpad.net/ [2]: http://bazaar-vcs.org/

Here's info on migrating:

http://bazaar-vcs.org/BzrMigration

and here's some general diffs between git and bzr:

http://bazaar-vcs.org/BzrForGITUsers

-----

1 point by cchooper 5908 days ago | link

I had a look at the site, and it isn't clear to me that anyone can push to a repository. Anyone can branch someone else's code, but I think you need permission to merge your changes into the main project. Can anyone confirm this?

-----