git-new-workdir

Lionel Elie Mamane lionel at mamane.lu
Fri Jun 21 04:58:30 PDT 2013


On Thu, Dec 13, 2012 at 11:57:27AM -0500, Kohei Yoshida wrote:
> On 12/13/2012 10:21 AM, Lionel Elie Mamane wrote:
>> On Wed, Dec 12, 2012 at 02:21:18PM -0500, Kohei Yoshida wrote:

>>> Not following the thread fully I'm not sure what this is about.  I'm
>>> guessing this is about git-new-workdir vs submodules.

>>> To put it short, I got it to work, and so far I haven't seen any
>>> major issues but some occasional oddities which I just dismiss for
>>> now.

>> I'd appreciate a description of how did it, actually.

> I have this primary master branch

> ~/libo/master

> and in it, submodules work more or less as expected.

> Now, to create a new workdir for, say, libreoffice-4-0 branch, I run

> cd ~/libo
> git-new-workdir master libreoffice-4-0 libreoffice-4-0

> I tend to name the directory the same name as the branch name. Then

> cd libreoffice-4-0
> ln -s ../master/src
> git-new-workdir ../master/helpconent2 helpcontent2 libreoffice-4-0

I see, you just do the git-new-workdir for every submodule before "git
submodule update" is run, and "git submodule update" respects the
setup. That should work, yes, but it abandons the idea of putting the
.git directory of the submodule in .git/modules/foo..

I've managed to fork git-new-workdir into git-new-module-workdir and
using it I've reenabled the --with-linked-git ./configure option. But
I've changed the semantics a bit.

You have a unique special "master" branch that serves as
reference, and you link everything to there. I work slightly
differently:

1) I have bare git repos for core and the submodules

2) My master checkout is in directory "libreoffice-4.2" and when the
   branch "libreoffice-4-2" is created, I switch to it and create a
   new "libreoffice-4-3" checkout.

So, to cater for my needs, "--with-linked-git" now does not point to a
full checkout, but to the parent directory of all submodule git
repositories, where each has to be named after their submodule
name. In your scenario, pointing it to ~/libo/master/ or
~/libo/master/.git/modules should both work. Let me know if it does.

> I would think that you probably should create a branch for the
> submodules as well to get it to work,

Not really, the "submodule update" checkouts a specific SHA1-ID,
without reference to any branch anyway.

-- 
Lionel


More information about the LibreOffice mailing list