git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* Opera release Git-splitter, a sub-modularizing tool for Git
@ 2012-12-18 14:51 Yngve N. Pettersen (Developer Opera Software ASA)
  2012-12-21 12:23 ` Michael J Gruber
  0 siblings, 1 reply; 8+ messages in thread
From: Yngve N. Pettersen (Developer Opera Software ASA) @ 2012-12-18 14:51 UTC (permalink / raw)
  To: git

Hello all,

Today Opera Software released the "Git-splitter", a small tool for  
sub-modularizing code in a git repo, with complete commit history, under  
the Apache 2.0 license.

It's functionality is similar to "git-subtree", but also include a command  
for reversing the process.

The code is hosted on GitHub:  
<https://github.com/operasoftware/git-splitter>

We have announced the release as part of another announcement of released  
code at the Opera Security Group home page:  
<http://my.opera.com/securitygroup/blog/2012/12/18/tls-prober-source-released-under-apache-2-0-license>

-- 
Sincerely,
Yngve N. Pettersen
********************************************************************
Senior Developer		     Email: yngve@opera.com
Opera Software ASA                   http://www.opera.com/
Phone:  +47 96 90 41 51              Fax:    +47 23 69 24 01
********************************************************************

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Opera release Git-splitter, a sub-modularizing tool for Git
  2012-12-18 14:51 Opera release Git-splitter, a sub-modularizing tool for Git Yngve N. Pettersen (Developer Opera Software ASA)
@ 2012-12-21 12:23 ` Michael J Gruber
  2012-12-21 12:43   ` Yngve Nysaeter Pettersen
  0 siblings, 1 reply; 8+ messages in thread
From: Michael J Gruber @ 2012-12-21 12:23 UTC (permalink / raw)
  To: Yngve N. Pettersen (Developer Opera Software ASA); +Cc: git

Yngve N. Pettersen (Developer Opera Software ASA) venit, vidit, dixit
18.12.2012 15:51:
> Hello all,
> 
> Today Opera Software released the "Git-splitter", a small tool for  
> sub-modularizing code in a git repo, with complete commit history, under  
> the Apache 2.0 license.
> 
> It's functionality is similar to "git-subtree", but also include a command  
> for reversing the process.

Is there something keeping you technically from adding a join command to
git-subtree?

> The code is hosted on GitHub:  
> <https://github.com/operasoftware/git-splitter>
> 
> We have announced the release as part of another announcement of released  
> code at the Opera Security Group home page:  
> <http://my.opera.com/securitygroup/blog/2012/12/18/tls-prober-source-released-under-apache-2-0-license>
> 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Opera release Git-splitter, a sub-modularizing tool for Git
  2012-12-21 12:23 ` Michael J Gruber
@ 2012-12-21 12:43   ` Yngve Nysaeter Pettersen
  2012-12-21 13:49     ` Michael J Gruber
  0 siblings, 1 reply; 8+ messages in thread
From: Yngve Nysaeter Pettersen @ 2012-12-21 12:43 UTC (permalink / raw)
  To: Michael J Gruber; +Cc: git

Hi,

On Fri, 21 Dec 2012 13:23:46 +0100, Michael J Gruber
<git@drmicha.warpmail.net> wrote:

> Yngve N. Pettersen (Developer Opera Software ASA) venit, vidit, dixit
> 18.12.2012 15:51:
>> Hello all,
>>
>> Today Opera Software released the "Git-splitter", a small tool for
>> sub-modularizing code in a git repo, with complete commit history, under
>> the Apache 2.0 license.
>>
>> It's functionality is similar to "git-subtree", but also include a  
>> command
>> for reversing the process.
>
> Is there something keeping you technically from adding a join command to
> git-subtree?

Probably not, but within the process I was working I did not want to merge
the branch with the recreated history for that path into the existing
codebase (I don't like duplicate histories) so I used rebasing to move the
new commits over, instead, and therefore did not need a join command.

Feel free to add a join command, if you want one.

>> The code is hosted on GitHub:
>> <https://github.com/operasoftware/git-splitter>
>>
>> We have announced the release as part of another announcement of  
>> released
>> code at the Opera Security Group home page:
>> <http://my.opera.com/securitygroup/blog/2012/12/18/tls-prober-source-released-under-apache-2-0-license>
>>


-- 
Sincerely,
Yngve N. Pettersen
********************************************************************
Senior Developer		     Email: yngve@opera.com
Opera Software ASA                   http://www.opera.com/
Phone:  +47 96 90 41 51              Fax:    +47 23 69 24 01
********************************************************************

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Opera release Git-splitter, a sub-modularizing tool for Git
  2012-12-21 12:43   ` Yngve Nysaeter Pettersen
@ 2012-12-21 13:49     ` Michael J Gruber
  2012-12-21 15:02       ` Yngve Nysaeter Pettersen
  0 siblings, 1 reply; 8+ messages in thread
From: Michael J Gruber @ 2012-12-21 13:49 UTC (permalink / raw)
  To: Yngve Nysaeter Pettersen; +Cc: git

Yngve Nysaeter Pettersen venit, vidit, dixit 21.12.2012 13:43:
> Hi,
> 
> On Fri, 21 Dec 2012 13:23:46 +0100, Michael J Gruber
> <git@drmicha.warpmail.net> wrote:
> 
>> Yngve N. Pettersen (Developer Opera Software ASA) venit, vidit, dixit
>> 18.12.2012 15:51:
>>> Hello all,
>>>
>>> Today Opera Software released the "Git-splitter", a small tool for
>>> sub-modularizing code in a git repo, with complete commit history, under
>>> the Apache 2.0 license.
>>>
>>> It's functionality is similar to "git-subtree", but also include a  
>>> command
>>> for reversing the process.
>>
>> Is there something keeping you technically from adding a join command to
>> git-subtree?
> 
> Probably not, but within the process I was working I did not want to merge
> the branch with the recreated history for that path into the existing
> codebase (I don't like duplicate histories) so I used rebasing to move the
> new commits over, instead, and therefore did not need a join command.
> 
> Feel free to add a join command, if you want one.

Im sorry, but that was a total misunderstanding. You said git-splitter
is like git-subtree but adds a command for reversing the process. My
question was: What kept you from adding that to git-subtree (rather than
redoing stiff that git-subtree does)?

I just assumed that reversing the process of splitting must be joining.

It may very well be that git-splitter does things differently, i.e. that
there are more differences than just added functionality (compared to
git-subtree), but that is not clear from the announcement.

>>> The code is hosted on GitHub:
>>> <https://github.com/operasoftware/git-splitter>
>>>
>>> We have announced the release as part of another announcement of  
>>> released
>>> code at the Opera Security Group home page:
>>> <http://my.opera.com/securitygroup/blog/2012/12/18/tls-prober-source-released-under-apache-2-0-license>
>>>
> 
> 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Opera release Git-splitter, a sub-modularizing tool for Git
  2012-12-21 13:49     ` Michael J Gruber
@ 2012-12-21 15:02       ` Yngve Nysaeter Pettersen
  2012-12-21 15:49         ` Matthieu Moy
  0 siblings, 1 reply; 8+ messages in thread
From: Yngve Nysaeter Pettersen @ 2012-12-21 15:02 UTC (permalink / raw)
  To: Michael J Gruber; +Cc: git

On Fri, 21 Dec 2012 14:49:26 +0100, Michael J Gruber  
<git@drmicha.warpmail.net> wrote:

> Yngve Nysaeter Pettersen venit, vidit, dixit 21.12.2012 13:43:
>> Hi,
>>
>> On Fri, 21 Dec 2012 13:23:46 +0100, Michael J Gruber
>> <git@drmicha.warpmail.net> wrote:
>>
>>> Yngve N. Pettersen (Developer Opera Software ASA) venit, vidit, dixit
>>> 18.12.2012 15:51:
>>>> Hello all,
>>>>
>>>> Today Opera Software released the "Git-splitter", a small tool for
>>>> sub-modularizing code in a git repo, with complete commit history,  
>>>> under
>>>> the Apache 2.0 license.
>>>>
>>>> It's functionality is similar to "git-subtree", but also include a
>>>> command
>>>> for reversing the process.
>>>
>>> Is there something keeping you technically from adding a join command  
>>> to
>>> git-subtree?
>>
>> Probably not, but within the process I was working I did not want to  
>> merge
>> the branch with the recreated history for that path into the existing
>> codebase (I don't like duplicate histories) so I used rebasing to move  
>> the
>> new commits over, instead, and therefore did not need a join command.
>>
>> Feel free to add a join command, if you want one.
>
> Im sorry, but that was a total misunderstanding. You said git-splitter
> is like git-subtree but adds a command for reversing the process. My
> question was: What kept you from adding that to git-subtree (rather than
> redoing stiff that git-subtree does)?
>
> I just assumed that reversing the process of splitting must be joining.
>
> It may very well be that git-splitter does things differently, i.e. that
> there are more differences than just added functionality (compared to
> git-subtree), but that is not clear from the announcement.


The split command will create a new repository for all files foo in a  
folder (path/foo) and their commit history.

The replant command reverses that process, re-adding the path prefix for  
each file. It may be possible to extend that process into one that  
automatically reintegrates the new commits in the original history, but I  
never had time to complete that work.

I did originally add the "replant" functionality into my version of the  
git-subtree script, but given the number of commits in the original  
repository, git-subtree turned out to be inefficient, due to the use of  
temporary files (tens of thousands of files IIRC).

Those problems led to my development of git-splitter in Python (bypassing  
the problem of temporary files), but just including the functionality I  
needed, join was not one of those functions.

>>>> The code is hosted on GitHub:
>>>> <https://github.com/operasoftware/git-splitter>
>>>>
>>>> We have announced the release as part of another announcement of
>>>> released
>>>> code at the Opera Security Group home page:
>>>> <http://my.opera.com/securitygroup/blog/2012/12/18/tls-prober-source-released-under-apache-2-0-license>
>>>>
>>
>>


-- 
Sincerely,
Yngve N. Pettersen
********************************************************************
Senior Developer		     Email: yngve@opera.com
Opera Software ASA                   http://www.opera.com/
Phone:  +47 96 90 41 51              Fax:    +47 23 69 24 01
********************************************************************

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Opera release Git-splitter, a sub-modularizing tool for Git
  2012-12-21 15:02       ` Yngve Nysaeter Pettersen
@ 2012-12-21 15:49         ` Matthieu Moy
  2012-12-21 20:13           ` Yngve Nysaeter Pettersen
  0 siblings, 1 reply; 8+ messages in thread
From: Matthieu Moy @ 2012-12-21 15:49 UTC (permalink / raw)
  To: Yngve Nysaeter Pettersen; +Cc: Michael J Gruber, git

"Yngve Nysaeter Pettersen" <yngve@opera.com> writes:

> The split command will create a new repository for all files foo in a
> folder (path/foo) and their commit history.
>
> The replant command reverses that process, re-adding the path prefix
> for each file. It may be possible to extend that process into one that
> automatically reintegrates the new commits in the original history,
> but I never had time to complete that work.
>
> I did originally add the "replant" functionality into my version of
> the git-subtree script, but given the number of commits in the
> original repository, git-subtree turned out to be inefficient, due to
> the use of temporary files (tens of thousands of files IIRC).
>
> Those problems led to my development of git-splitter in Python
> (bypassing the problem of temporary files), but just including the
> functionality I needed, join was not one of those functions.

That still doesn't answer the question: why did you need to write a new
tool instead of extending git-subtree?

If one doesn't use "replant", is your tool different from git-subtree?

-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Opera release Git-splitter, a sub-modularizing tool for Git
  2012-12-21 15:49         ` Matthieu Moy
@ 2012-12-21 20:13           ` Yngve Nysaeter Pettersen
  2012-12-22 16:41             ` Michael J Gruber
  0 siblings, 1 reply; 8+ messages in thread
From: Yngve Nysaeter Pettersen @ 2012-12-21 20:13 UTC (permalink / raw)
  To: Matthieu Moy; +Cc: Michael J Gruber, git

On Fri, 21 Dec 2012 16:49:21 +0100, Matthieu Moy  
<Matthieu.Moy@grenoble-inp.fr> wrote:

> "Yngve Nysaeter Pettersen" <yngve@opera.com> writes:
>
>> The split command will create a new repository for all files foo in a
>> folder (path/foo) and their commit history.
>>
>> The replant command reverses that process, re-adding the path prefix
>> for each file. It may be possible to extend that process into one that
>> automatically reintegrates the new commits in the original history,
>> but I never had time to complete that work.
>>
>> I did originally add the "replant" functionality into my version of
>> the git-subtree script, but given the number of commits in the
>> original repository, git-subtree turned out to be inefficient, due to
>> the use of temporary files (tens of thousands of files IIRC).
>>
>> Those problems led to my development of git-splitter in Python
>> (bypassing the problem of temporary files), but just including the
>> functionality I needed, join was not one of those functions.
>
> That still doesn't answer the question: why did you need to write a new
> tool instead of extending git-subtree?

The primary problem with git-subtree was that I ended up with a temporary  
file directory containing 100+K files, which I tracked back to being used  
to manage the commit-to-tree mapping. On Windows, at least, that literally  
slowed down the process to a crawl.

> If one doesn't use "replant", is your tool different from git-subtree?

No, it is not different. However, my tool will use RAM, not diskspace to  
manage information.


-- 
Sincerely,
Yngve N. Pettersen
********************************************************************
Senior Developer		     Email: yngve@opera.com
Opera Software ASA                   http://www.opera.com/
Phone:  +47 96 90 41 51              Fax:    +47 23 69 24 01
********************************************************************

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Opera release Git-splitter, a sub-modularizing tool for Git
  2012-12-21 20:13           ` Yngve Nysaeter Pettersen
@ 2012-12-22 16:41             ` Michael J Gruber
  0 siblings, 0 replies; 8+ messages in thread
From: Michael J Gruber @ 2012-12-22 16:41 UTC (permalink / raw)
  To: Yngve Nysaeter Pettersen; +Cc: Matthieu Moy, git

Yngve Nysaeter Pettersen venit, vidit, dixit 21.12.2012 21:13:
> On Fri, 21 Dec 2012 16:49:21 +0100, Matthieu Moy  
> <Matthieu.Moy@grenoble-inp.fr> wrote:
> 
>> "Yngve Nysaeter Pettersen" <yngve@opera.com> writes:
>>
>>> The split command will create a new repository for all files foo in a
>>> folder (path/foo) and their commit history.
>>>
>>> The replant command reverses that process, re-adding the path prefix
>>> for each file. It may be possible to extend that process into one that
>>> automatically reintegrates the new commits in the original history,
>>> but I never had time to complete that work.
>>>
>>> I did originally add the "replant" functionality into my version of
>>> the git-subtree script, but given the number of commits in the
>>> original repository, git-subtree turned out to be inefficient, due to
>>> the use of temporary files (tens of thousands of files IIRC).
>>>
>>> Those problems led to my development of git-splitter in Python
>>> (bypassing the problem of temporary files), but just including the
>>> functionality I needed, join was not one of those functions.
>>
>> That still doesn't answer the question: why did you need to write a new
>> tool instead of extending git-subtree?
> 
> The primary problem with git-subtree was that I ended up with a temporary  
> file directory containing 100+K files, which I tracked back to being used  
> to manage the commit-to-tree mapping. On Windows, at least, that literally  
> slowed down the process to a crawl.
> 
>> If one doesn't use "replant", is your tool different from git-subtree?
> 
> No, it is not different. However, my tool will use RAM, not diskspace to  
> manage information.

That is some valuable input. It can help improve git-subtree for Windows
users, or replace it by something else.

Michael

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2012-12-22 16:41 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-12-18 14:51 Opera release Git-splitter, a sub-modularizing tool for Git Yngve N. Pettersen (Developer Opera Software ASA)
2012-12-21 12:23 ` Michael J Gruber
2012-12-21 12:43   ` Yngve Nysaeter Pettersen
2012-12-21 13:49     ` Michael J Gruber
2012-12-21 15:02       ` Yngve Nysaeter Pettersen
2012-12-21 15:49         ` Matthieu Moy
2012-12-21 20:13           ` Yngve Nysaeter Pettersen
2012-12-22 16:41             ` Michael J Gruber

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).