Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus / 2010-03

Instructions for git-svn link for Lazarus repository

3 messages · 2 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Juha Manninen

Hi,

I have made (on request) a wiki page explaining the git-svn link.

http://wiki.lazarus.freepascal.org/Lazarus_git-svn

It is primarily meant for people who want to commit changes directly to Lazarus repository using git.
A git mirror is still better for a read only usage.

It should be possible to create a git mirror that supports directly commits to SVN repo but I haven't done that.

Regards,
Juha
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20100310/57c0b33c/attachment.html>

Reply by email

Alexander Klenin
to Juha Manninen

2010/3/10 Juha Manninen :

Show quoted text 13 lines
Hi, I have made (on request) a wiki page explaining the git-svn link. http://wiki.lazarus.freepascal.org/Lazarus_git-svn It is primarily meant for people who want to commit changes directly to Lazarus repository using git. A git mirror is still better for a read only usage. It should be possible to create a git mirror that supports directly commits to SVN repo but I haven't done that.

Note that initial clone sequentially requests all revisions from svn reopsitory, so it may take some time and generate some stress on the svn server. (One may choose to clone only the recent revisions, but this defeats one of the important advantages of Git -- ability to view history in a reasonable
time).
Following fetches, however, are equivalent to the usual "svn update" in terms of server load.
This is primarily why official git mirror would be useful -- people could clone the mirror from github and then reconfigure it to fetch/dcommit to svn repository.

Alexander S. Klenin

Reply by email

Juha Manninen
to Alexander Klenin
Show quoted text 5 lines
Note that initial clone sequentially requests all revisions from svn reopsitory, so it may take some time and generate some stress on the svn server. (One may choose to clone only the recent revisions, but this defeats one of the important advantages of Git -- ability to view history in a reasonable time).

There can be other motives to use git than the history. Like managing the local commits (join, split, reorder) before making them public. The server load would be relevant if this was done by hundreds of people but it won't happen.
I didn't (and my instructions don't) clone the whole history.

Show quoted text 5 lines
Following fetches, however, are equivalent to the usual "svn update" in terms of server load. This is primarily why official git mirror would be useful -- people could clone the mirror from github and then reconfigure it to fetch/dcommit to svn repository.

I agree. I tried to configure Graeme's mirror to use Lazarus SVN directly but failed. I am not a git expert, I just learned the basics myself. If you have a working configuration, please copy it here (or to the wiki page).

I copy here a section from git-svn --help. That should make a mirror readily configured for the SVN server but I haven't tried it:

---
The initial git svn clone can be quite time-consuming (especially for large Subversion repositories). If multiple people (or one person with multiple machines) want to use git svn to interact with the same Subversion repository, you can do the initial git svn clone to a repository on a server and have each person clone that repository with git clone:
# Do the initial import on a server
ssh server "cd /pub && git svn clone http://svn.example.com/project # Clone locally - make sure the refs/remotes/ space matches the server mkdir project
cd project
git init
git remote add origin server:/pub/project
git config --add remote.origin.fetch '+refs/remotes/*:refs/remotes/*' git fetch
# Create a local branch from one of the branches just fetched git checkout -b master FETCH_HEAD
# Initialize 'git svn' locally (be sure to use the same URL and -T/-b/-t options as were used on server) git svn init http://svn.example.com/project
# Pull the latest changes from Subversion
git svn rebase
---
Juha
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20100310/69e6ceba/attachment.html>

Reply by email