[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Git

From: Stefan Fuhrmann <stefan.fuhrmann_at_wandisco.com>
Date: Tue, 12 Feb 2013 23:07:20 +0100

On Sat, Feb 9, 2013 at 10:46 PM, Stefan Küng <tortoisesvn_at_gmail.com> wrote:

> Hi,
>
> Not sure how to start, but I'd like to discuss an idea:
> I've been trying out Git on and off ever since it became available. At
> first it wasn't even a serious option on Windows, but of course it
> improved. Implementing Git in TSVN was always an option for me, but the
> official API was (and still is) completely unusable. Only the
> non-official libgit2 library seemed like a real option, even though for
> a long time it lacked the most basic features so it wasn't an option
> either.
> But now as you might have heard, Microsoft is using libgit2 as well for
> Visual Studio - and when I checked out libgit2 again it's now actually
> usable. And frigging small! It's only about 600kbytes big and can do
> almost everything that's necessary - compare that to the megs required
> for basic SVN and you can see the size difference really is astonishing :)
>

I always thought that not having a canonical implementation
was one of the greatest weaknesses of git. Good to hear
that they finally improved on that side.

> For tests, I've implemented the clone command with libgit2 in TSVN and
> it works quite well.
>

Will libgit2 be just another dependency in the build process?
As long as I don't have to update that part frequently, it's fine
with me.

But before I go any further, I think we need to first discuss a few
> things here:
>
> * should we even add Git support to TSVN?
> Or should we concentrate on SVN alone?
>

Hm. Concentrating on SVN is certainly a priority. But if there
are spare cycles and everyone coding the extra parts has fun
doing it - why not?

The only issue I see is the wording in any announcement
concerning git support. However, as long as it is considered
an experiment, there will still be plenty of time to see how
well the git support progresses and when to make it an
official feature.

> * there's already TortoiseGit, so what about that?
> Note: while I've installed TGit on my machine, I never really liked
> it's UI - it's IMHO too complicated
>

I think part of coding the initial git support will be finding out
how to integrate git without compromising SVN functionality
and usability. And you will never know before trying it. Under
Linux, I use RabbitVCS which does an o.k. job to support
SVN, git and hg in a (seemingly) single client.

That said, RabbitVCS doesn't support the full feature set of
any of those systems and I would like to see TSVN continue
to always support anything SVN offers and will offer.

> * if you look at the TGit source you'll see that a *lot* of its code
> was taken from TSVN - so if we add Git support ourselves it won't
> add a lot to the size of TSVN.
>

My understanding is that TGit started off as a clone of TSVN
(which was the Right Thing To Do back then). The beauty of
GPL is that we can now use code from that project when we
feel like it.

Somebody else already raised the point of not adding tons of
"if (is_git) do_x(); else do_y()" code. The TSVN current code
is very tightly linked to the UI, i.e. there is often no separate
logic layer. That's been fine for TSVN's scope and complexity
in the past but also limits portability, tool integration or using
$fancyUiLibDuJour.

If the only thing that adding git support achieves is cleaner
code in general, I'd say it is worth it.

If we add Git support: make no mistake, this will take a long time to
> get it to a usable state. While I got the clone command working withing
> a few hours and most commands will take not much more time, there are a
> lot of commands to implement and even more UI implementations and
> decisions to make.
>

I say: Give it a try! There is no reason why even experimenting
with it should be a problem. Maybe, open a branch for that
to reduce the impact on the upcoming 1.8 release.

Please respond with your thoughs....
>

Took me a while to formulate a coherent position. And I feel
a bit guilty of having TSVN left aside for the last year or so.
But I think that server scalability and performance are absolutely
crucial in a commercial environment. And this is what keeps
SVN relevant and ultimately pays my bills.

On a lighter note: Off to the beach now ...

-- Stefan^2.

-- 
Certified & Supported Apache Subversion Downloads:
*
http://www.wandisco.com/subversion/download
*
------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=757&dsMessageId=3048508
To unsubscribe from this discussion, e-mail: [dev-unsubscribe_at_tortoisesvn.tigris.org].
Received on 2013-02-13 00:29:27 CET

This is an archived mail posted to the TortoiseSVN Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.