Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 371845

Summary: Git migration request (DLTK)
Product: Community Reporter: Alex Panchenko <alex.panchenko>
Component: GitAssignee: Eclipse Webmaster <webmaster>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: alex.panchenko, andrei.sobolev, andrey, bruno.do.medeiros, jacek.pospychala
Version: unspecified   
Target Milestone: ---   
Hardware: All   
OS: All   
Whiteboard:
Attachments:
Description Flags
Git migration restructure none

Description Alex Panchenko CLA 2012-02-17 00:49:42 EST
Hi,

We would like to ask you to create git repository for DLTK.

Migration timeline: ASAP, not urgent.

Mapping of the current code: /cvsroot/technology/org.eclipse.dltk to single git repository, excluding the following folders:

org.eclipse.dltk/core/plugins/UNUSED/
org.eclipse.dltk/javascript/plugins/UNUSED/
org.eclipse.dltk/python/plugins/UNUSED/
org.eclipse.dltk/external/
org.eclipse.dltk/releng/
org.eclipse.dltk/releng.control/
org.eclipse.dltk/releng.dltkbuilder/
org.eclipse.dltk/releng.dltktools/
org.eclipse.dltk/releng.maps/
org.eclipse.dltk/releng.psf/
org.eclipse.dltk/performance/

We want history of HEAD imported to master branch, other branches are not required.

Do not freeze CVS now, we'll ask for freeze after we verify the import.

Description for repository: Dynamic Languages Toolkit (DLTK)

Access: all DLTK committers.

Thanks,
Alex Panchenko
DLTK Team
Comment 1 Eclipse Webmaster CLA 2012-02-23 10:50:15 EST
Usually we recommend that projects 'restructure' before(or after) they convert to Git.

However I've tried to build an exclude list for your test import which can be found here: /gitroot/dltk/org.eclipse.dltk.git .

Take a look and let me know if it's as you expect.

-M.
Comment 2 Alex Panchenko CLA 2012-02-23 11:18:30 EST
Thank you.
Probably it is a good idea to restructure, however it depends on what is possible :-)
It looks like excludes were not applied, e.g. http://git.eclipse.org/c/dltk/org.eclipse.dltk.git/tree/core/plugins/UNUSED

Regards,
Alex
Comment 3 Eclipse Webmaster CLA 2012-02-28 10:50:56 EST
Ah, well in that case it's probably best to restructure CVS first and then run the import.

In this case we could simply delete the unused / unwanted directories from the file system.

-M.
Comment 4 Alex Panchenko CLA 2012-06-14 04:02:31 EDT
Created attachment 217336 [details]
Git migration restructure

I am attaching the file with the mapping of the current sources into git repositories.

Could we proceed based on this?
Comment 5 Eclipse Webmaster CLA 2012-06-15 14:11:42 EDT
Question: Are you expecting the git repos to be 'flat' or to contain the given cvs directories as sub-directories?

My 'plan' at this stage is to copy your cvs repo, move everything around with the command line and then generate the git repos.

-M.
Comment 6 Alex Panchenko CLA 2012-06-15 14:25:31 EDT
I mean the last segment of the specified path should be root folder in the repo.

In this way core.git should contain 
- core
- mylyn
- rse 
as top level folders, with plugins/ and features/ under each of them.

For javascript, python & ruby there should be plugins/ and features/ in the root.

in examples the structure should be 
- eclipsecon08
- core/examples
- core/tools
- ruby/examples
- javascript/examples
- javascript/tools
Comment 7 Eclipse Webmaster CLA 2012-06-18 11:48:07 EDT
Ok, I copied your cvs repo, shuffled things around and then imported everything.  

Can I get confirmation that everything is ok, at which point I'll mark your CVS as read only.

Web browsable repo locations:

git.eclipse.org/c/dltk/org.eclipse.dltk.core.git
git.eclipse.org/c/dltk/org.eclipse.dltk.releng.git
git.eclipse.org/c/dltk/org.eclipse.dltk.examples.git
git.eclipse.org/c/dltk/org.eclipse.dltk.javascript.git
git.eclipse.org/c/dltk/org.eclipse.dltk.python.git
git.eclipse.org/c/dltk/org.eclipse.dltk.ruby.git
git.eclipse.org/c/dltk/org.eclipse.dltk.tcl.git

-M.
Comment 8 Alex Panchenko CLA 2012-06-25 05:10:42 EDT
Conversion looks good. Thank you!

Could you mark our CVS repository as readonly and repeat the conversion to catch the commits which happened during the last week? It should be fine if you announce readonly mode on this bug. Or what is the recommended way to have the last commits in the git repo?

Now we are done with the releases and are ready to switch to git, ideally - this week.

Thank you,
Alex
Comment 9 Eclipse Webmaster CLA 2012-06-25 13:55:42 EDT
Ok, I've marked things as read only.  I'll copy the CVS repo re-organize it and re-create the git repos starting now.

-M.
Comment 10 Eclipse Webmaster CLA 2012-06-25 16:31:09 EDT
Ok all done.

You'll need to re-sync with the new git repos(in the same locations as comment #7), and then you should be all set.

-M.
Comment 12 Eclipse Webmaster CLA 2012-06-26 10:29:43 EDT
Done, sorry about that.

-M.
Comment 13 Alex Panchenko CLA 2012-06-26 11:43:33 EDT
Conversion is OK now.

Also we would to have
a) commit notifications to dltk-commits@eclipse.org list
b) cleanup on http://dev.eclipse.org/git/index.html
c) our repositories added to https://github.com/eclipse eventually

Or should I create separate bugs for them?
"a" is more important for the development, while "b" and "c" are optional and not urgent.

Thank you,
Alex
Comment 14 Eclipse Webmaster CLA 2012-06-26 13:50:39 EDT
(In reply to comment #13)

> a) commit notifications to dltk-commits@eclipse.org list

For all your repos or just 1 or 2?

> b) cleanup on http://dev.eclipse.org/git/index.html

The mirrors will be regenerated until the underlying cvs is removed.

> c) our repositories added to https://github.com/eclipse eventually

You should probably talk to Wayne or Chris A. about this.

-M.
Comment 15 Alex Panchenko CLA 2012-06-26 13:56:42 EDT
(In reply to comment #14)
> (In reply to comment #13)
> 
> > a) commit notifications to dltk-commits@eclipse.org list
> 
> For all your repos or just 1 or 2?

For the following repos:
git.eclipse.org/c/dltk/org.eclipse.dltk.core.git
git.eclipse.org/c/dltk/org.eclipse.dltk.javascript.git
git.eclipse.org/c/dltk/org.eclipse.dltk.python.git
git.eclipse.org/c/dltk/org.eclipse.dltk.ruby.git
git.eclipse.org/c/dltk/org.eclipse.dltk.tcl.git

(excluding .releng and .examples)

Thanks,
Alex
Comment 16 Eclipse Webmaster CLA 2012-06-26 16:18:45 EDT
Ok, you should start seeing commit notices soon.

-M.
Comment 17 Alex Panchenko CLA 2012-06-27 05:12:22 EDT
Notifications work, thank you.

Could we have some better formatting for the messages?
or should it be discussed in a different bug? :-)

Currently the messages contains a lot of technical details, but doesn't contain links to browse the change, e.g. http://dev.eclipse.org/mhonarc/lists/dltk-commits/msg14482.html

I would like to have something like GitHub provides:

---------- Forwarded message ----------
From: GitHub <noreply@github.com>
Subject: [USER/REPO] 19d02d: <MESSAGE>

 Branch: refs/heads/master
 Home:   https://github.com/USER/REPO
 Commit: ...
     https://github.com/USER/REPO/commit/..

 Author: user-name <user-email>
 Date:   2012-06-26 (Tue, 26 Jun 2012)

 Changed paths:
   M maven-plugins/pom.xml

 Log Message:
 -----------
 <COMMIT>
--------------------------------------

Probably I can edit the hook script in the repo, but I think the messages should be more user friendly by default.

What is the best approach to have this addressed?

Thank you,
Alex
Comment 18 Eclipse Webmaster CLA 2012-06-27 10:51:36 EDT
We use the 'default' post-receive hook from the contribs directory.  If you'd like to craft a custom hook to format the message the way you'd like I'm certainly willing to help install it.

But that should probably occur on a separate bug.

-M.
Comment 19 Alex Panchenko CLA 2012-08-15 06:20:14 EDT
Migration was done, notifications work.

Thanks,
Alex