Re: [fpc-other] Git & SVN

2017-05-25 Thread Dimitrios Chr. Ioannidis via fpc-other

Hi,

Στις 2017-05-25 18:24, Dimitrios Chr. Ioannidis via fpc-other έγραψε:

Hi,
Στις 2017-05-25 17:34, Sven Barth via fpc-other έγραψε:

< snip >


a core dev). Though we'd need to implement such restrictions anyway no
matter what we choose for the repo hosted on our own server...


Ok just setup gogs for testbed / evaluation at 
https://fpc-scm.nephelae.eu/ .


This machine is a private test VPS in a DataCenter in Germany, so feel 
free to do whatever you want .


regards,

--
Dimitrios Chr. Ioannidis
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-25 Thread Dimitrios Chr. Ioannidis via fpc-other

Hi,
Στις 2017-05-25 17:34, Sven Barth via fpc-other έγραψε:

< snip >


a core dev). Though we'd need to implement such restrictions anyway no
matter what we choose for the repo hosted on our own server...


Ok just setup gogs for testbed / evaluation at 
https://fpc-scm.nephelae.eu/ .


Anyone interested for admin credentials for evaluation just email me 
privately  .


regards,

--
Dimitrios Chr. Ioannidis
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-25 Thread Graeme Geldenhuys

On 2017-05-25 15:34, Sven Barth via fpc-other wrote:

a core dev). Though we'd need to implement such restrictions anyway no
matter what we choose for the repo hosted on our own server...


Gitolite is brilliant at directory level, file level, branch level, site 
level permissions, private branches support and more. It's very flexible 
and uses git to configure itself - so config changes and new repo setups 
can be done remotely, and as soon as you do the push the server is 
updated and repos are created.


  http://gitolite.com/gitolite/

It is also very simple to install and set up. Also a under 5 minute job.


ps:
  I just thought I would point out that a web interface (Github, Gogs
  and others) are not the only way to do pull requests. In fact,
  pull requests via a email message is much more informative and
  easier for other person to review. This is built into git.

  For more information see:

 $ git help request-pull

  So you guys might want a daemon that scans the fpc-devel and
  fpc-users mailing lists too. That's if you want to cover all
  bases.


Regards,
  Graeme

___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-25 Thread Dimitrios Chr. Ioannidis via fpc-other

Hi,

Στις 2017-05-25 16:53, Sven Barth via fpc-other έγραψε:

< snip >


Maybe such a hypothesized integration system would be a bit more
rigorous depending on what files were changed? E.g. full build with
fullcycle plus testsuite run on Tier 1 targets if anything in compiler
and rtl was changed and only a full build if merely something in
packages was touched.


May I ask currently for "Tier 1" how many physical systems fpc team have 
available for the automated test suite ?


regards,

--
Dimitrios Chr. Ioannidis
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-25 Thread Dimitrios Chr. Ioannidis via fpc-other

Hi,

Στις 2017-05-25 16:53, Sven Barth via fpc-other έγραψε:

< snip >


Step 1: have an official FPC trunk Git mirror on our own server with a
mirror/fork of it on GitHub (were those license troubles regarding GPL
and Co I mentioned some months ago solved, btw?) and accept Pull
Requests on the GitHub mirror (those would of course need to be
processed by core devs willing to use Git :P )


who needs github when you have gogs ( https://gogs.io/ ) ?

It's a 5 minute setup and is very solid .

regards,


--
Dimitrios Chr. Ioannidis
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-25 Thread Sven Barth via fpc-other
2017-05-25 15:34 GMT+02:00 Marco van de Voort :
> In our previous episode, Sven Barth via fpc-other said:
>> Of course the biggest obstacle is the building and running of the
>> testsuite.
>
> I think running the testsuite is a waste of time and cycles for anything
> outside compiler/ and rtl/.  And even for half of the RTL.

I essentially agree which is why I wrote in my message to Charlie a
moment ago that the integration system could differentiate here based
on what files were changed.
Though maybe partial testsuite runs would be useful as well, e.g. if
something changed in the rtti unit (which is in the rtl-objpas
package) the tests for that unit/package should at least be run. This
of course would require a few more adjustments to the testsuite, but
it wouldn't be an unsolveable problem.

Regards,
Sven
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-25 Thread Sven Barth via fpc-other
2017-05-25 15:20 GMT+02:00 Karoly Balogh (Charlie/SGR)
:
>> Of course the biggest obstacle is the building and running of the
>> testsuite.
>
> Well. Build breakages are daily occurence with obvious "this could have
> never built" mistakes, or new packages get committed which don't build for
> any platform, etc. Even large patches, with little care and "worksforme"
> excuse. So even in the current system we run the testsuite *AFTER* the
> commits are already made. And lot of the experimental development happens
> in directly trunk. So this reaction of "omg, what happens to the testsuite
> runs" I feel a bit... Yes. :)

I'm aware that the current situation isn't all roses and such (see the
typo you fixed a few days ago: that was me removing a "virtual"
without its semicolon directly before the commit even though I had
already successfully built the compiler previously). So if we had an
automated process to catch such things at least on the Tier 1 systems
you mentioned below that would go a long way already I'd say and - as
you wrote as well - completely independant of SVN or Git.

> And I'm guilty as well, make no mistake. :) But actually this leads us to
> another problem, that now all commits are equal, even if someone touches
> an uncritical/new package or some x86 codegenerator or a critical part of
> the RTL. If the later breaks, could cause problems for everyone years down
> the line, while a package will almost certainly only affect some people.
> Which means different developers work in the same repo with different
> quality/criticality standards...

Maybe such a hypothesized integration system would be a bit more
rigorous depending on what files were changed? E.g. full build with
fullcycle plus testsuite run on Tier 1 targets if anything in compiler
and rtl was changed and only a full build if merely something in
packages was touched.

>> There would of course be the possibility that this would break some
>> target that isn't in the test subset, but let's be honest: that
>> currently happens as well :P
>
> Indeed.
>
> To be honest, I don't see a lot of difference to a Pull request or a diff
> submitted via Mantis. A core developer has to handle both, and sign it
> off. From then on it's his responsibility to handle the patch during its
> lifetime, and revert or fix it, if breaks the build and next days'
> testsuite runs. It's actually pretty much irrelevant if the change got
> into trunk via a manual diff/patch/commit, or someone integrated a pull
> request. What I meant is some automatic process, which makes sure you have
> a linear history suitable for an SVN upstream commit, etc.

I agree.

Maybe we could try at least part of it:
Step 1: have an official FPC trunk Git mirror on our own server with a
mirror/fork of it on GitHub (were those license troubles regarding GPL
and Co I mentioned some months ago solved, btw?) and accept Pull
Requests on the GitHub mirror (those would of course need to be
processed by core devs willing to use Git :P )
Step 2: adjust the Git repo on our own server so that it can react to
Pull Requests from authorized developers (aka us Core devs) as well
and have it do the integration stuff (which of course would require
writing or finding such a system which would be a whole topic in and
on itself) all the while the development process can continue with SVN
as well (without the integration shenigans)
Of course Step 1 would require us to do a conversion from SVN to Git
of at least trunk and to make sure that all revisions that need to be
there are indeed there (e.g. if Graeme's statement is true that Git
ignores commits that only have property changes).

This is of course a rather simplified view of all this and many
problems along the way would need to be solved.

Regards,
Sven
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-25 Thread Marco van de Voort
In our previous episode, Florian Kl?mpfl said:
> > donate a month of our time. 
> 
> Indeed, it depends on the person who does it. It requires knowledge about the 
> specific workflow
> requirements of a compiler project. And that this is not easy is proven by 
> the fact that gcc as well
> as llvm still use svn as canonical repository. They probably have a lot more 
> man power than FPC.

So does FreeBSD, (though IIRC they also use Perforce internally), so even it
is not pinacle of OS kernel development either :-)
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-25 Thread Sven Barth via fpc-other
2017-05-24 14:12 GMT+02:00 Karoly Balogh (Charlie/SGR)
:
>
> Hi,
>
> On Wed, 24 May 2017, Graeme Geldenhuys wrote:
>
> > If the Free Pascal team is ever serious about migrating to Git, I'll
> > happily help out with the migration process.
>
> Well, I think the resistance is too big for the migration. The SVN people
> go full berserk bloodbath mode when Git is mentioned, and Git people
> usually go "whatever" and just use git-svn. :)

Disclaimer for the remainder of the mail: I've seen Florian's mail
that he currently sees no need to move FPC development to Git,
nevertheless Charlie's mail was too interesting and constructive not
to respond to it :)

> But. If we could come up with a way, which allows accepting pull requests
> with Git somehow (thinking about Github, specifically, but in general),
> then have them seamlessly integrated into upstream SVN as they're
> accepted, that would maybe move things forward. (Remember, we even have an
> FPC organization on Github, which we can utilize.)

The integration of Pull Requests into upstream SVN would indeed need
to be automated as much as possible (I see where Marco is coming
from). In essence those people that currently are allowed to commit to
SVN trunk would be allowed to send a Pull Request to the integration
system (which would automatically do the merge, build and run the
testsuite and commit it to master if successful). If an external
developer would want to see something committed she'd need to send a
Pull Request to one of the Core developers or there would be some
general catch all mechanism in place and some Core developer could
just pick up any pending external Pull Requests and sent it on to the
integration system if deemed worthy of inclusion.

Of course the biggest obstacle is the building and running of the
testsuite. As Florian wrote in one of his other mails we're
partially/primarily relying on build farms that are shared with other
users and on some systems the testsuite run takes long (e.g. on my
PowerBook it takes around an hour). So maybe the Pull Requests for the
integration system could be designed in such a way that only a subset
of the supported targets can be requested for build and testsuite runs
or maybe only a fullcycle is done together with a full build of only
one target all depending on whatever the Pull Request specifies. There
would of course be the possibility that this would break some target
that isn't in the test subset, but let's be honest: that currently
happens as well :P

> With the more automated verifications regarding the integrity of the SVN
> the better. But Marco was right on the point, that this needs a very very
> carefully designed plan and process, to not screw up the upstream SVN.
> Maybe what LLVM and GCC has in place can serve as a starting point.

Qt for example has a similar process (even though they don't have a
SVN master repository anymore like LLVM and GCC do), see here:
http://wiki.qt.io/Qt_Contribution_Guidelines

> And to be honest, I wouldn't even have the full SVN mirror "published" in
> Git, only trunk, and branches fixes_3_0 and newer, with the later being
> read only, as merges would happen by the maintainer, in SVN.
>
> So yeah, TL;DR: instead of trying to fix people we could use engineering
> to make the technology just serve us all. :)

I agree that this could be solved with some engineering if enough
willpower and time (and insight into FPC's development process) is
available.

Regards,
Sven
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-25 Thread Florian Klämpfl
Am 25.05.2017 um 12:02 schrieb Graeme Geldenhuys:
> On 2017-05-25 09:26, Florian Klämpfl wrote:
>>  This is at least one month of work I (and
>> probably nobody else) can and want to spent.
> 
> And some how I believe that will never happen (or be allowed) even if I (or 
> somebody else) decide to
> donate a month of our time. 

Indeed, it depends on the person who does it. It requires knowledge about the 
specific workflow
requirements of a compiler project. And that this is not easy is proven by the 
fact that gcc as well
as llvm still use svn as canonical repository. They probably have a lot more 
man power than FPC.
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-25 Thread Marco van de Voort
In our previous episode, Santiago A. said:
> Workflows are designed according with the tools you had when you
> designed it. Sometimes you improve your workflow as you improve your
> knowledge of tools. And sometimes you create new tools to improve your
> workflow.
> 
> But sometimes other people create a new tools that improves the system
> but requires a dramatic change of workflow for better. I know Changing
> of mindset is never easy, but the attitude of "I won't change my
> workflow" closes the doors to any improvement.
> 
> Many projects are using Git, we are not talking about early adopters or
> isnewisbetter guys. It has been tested in real world for several year,
> and may projects are moving to it. So I would give it a second chance.
> I'm doing so, in spite I'm not exactly a young boy and early adopter, I
> can see some advantages in git easy branching and merging.
> 
> Evaluate git and workflows again as for the first time, as if it were
> the first time you have heard about it. Forget Graeme Geldenhuys,
> sometimes he says  things with manners that well, sometimes is looks
> like seducing people is not among his virtues but the other way around
> ;-),  Take a new fresh look to Git.

I've done so every time the discussion looks up. I also have some DVCS
experience with Mercurial, and I still don't see it.
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-25 Thread Graeme Geldenhuys

On 2017-05-25 09:26, Florian Klämpfl wrote:

 This is at least one month of work I (and
probably nobody else) can and want to spent.


And some how I believe that will never happen (or be allowed) even if I 
(or somebody else) decide to donate a month of our time. I fear the 
resistance will outweigh the dedication to accomplish this task. This 
was made abundantly clear to me now.


Regards,
  Graeme

___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-25 Thread Santiago A.
El 24/05/2017 a las 22:07, Florian Klämpfl escribió:
>
> The workflow will not change. If the tool does not fit the workflow, it is 
> the wrong tool. Period.

I'm not an apostle of Git, nevertheless, your statement is wrong.

Workflows are designed according with the tools you had when you
designed it. Sometimes you improve your workflow as you improve your
knowledge of tools. And sometimes you create new tools to improve your
workflow.

But sometimes other people create a new tools that improves the system
but requires a dramatic change of workflow for better. I know Changing
of mindset is never easy, but the attitude of "I won't change my
workflow" closes the doors to any improvement.

Many projects are using Git, we are not talking about early adopters or
isnewisbetter guys. It has been tested in real world for several year,
and may projects are moving to it. So I would give it a second chance.
I'm doing so, in spite I'm not exactly a young boy and early adopter, I
can see some advantages in git easy branching and merging.

Evaluate git and workflows again as for the first time, as if it were
the first time you have heard about it. Forget Graeme Geldenhuys,
sometimes he says  things with manners that well, sometimes is looks
like seducing people is not among his virtues but the other way around
;-),  Take a new fresh look to Git.

-- 
Saludos

Santiago A.

___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-25 Thread Florian Klämpfl
Am 25.05.2017 um 00:44 schrieb Graeme Geldenhuys:
> But I get in now. You guys are set in your ways - good or bad, and currently 
> not willing to change.
> So I'll leave it at that.

Thanks. I hope I might quote you in a few weeks/months/years :)
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-24 Thread Nikolay Nikolov



On 05/25/2017 01:44 AM, Graeme Geldenhuys wrote:

On 2017-05-24 21:21, Marco van de Voort wrote:

Even a limited change is already a massive operation, let's keep it
managable.


So how large is the FPC team really? I'm talking about active 
developers on a day-to-day basis who have commit access to Trunk.


Oh wait, I can answer that very accurately myself... using git.

$ cd /data/devel/fpc-3.1.1/src
[src (master)]$ git shortlog -s -n --since=4.months
   191  Michael Van Canneyt
   147  Mattias Gaertner
   140  nickysn
83  svenbarth
73  Florian Klaempfl
62  pierre
52  Joost van der Sluis
39  maciej
30  karoly
26  Marco van de Voort
23  Jonas Maebe
22  yury
 7  lacak
 5  marcus
 3  Sergei Gorelkin
 2  hajny

So that's 16 developers - a nice size, but also not a large team (say 
compared to the KDE project that moved from SubVersion to Git, or LLVM 
seeing as that was mentioned earlier). The amount of commits are also 
not huge - so they most likely have a day job. ;-)


And the two developers with the most commits (by a large margin) work 
primarily in the RTL and FCL. That's development work like any other 
project I have worked on. Nothing special or "rocket science" about 
that (sorry Florian).


As for the 3rd person "nickysn"... I see he/she actually worked on the 
compiler/* tree. How do I know this?


  $ git log --name-only --oneline --since=2.months --author=nickysn
Actually, that's me and I'm surprised I'm topping the list. Maybe that's 
because I'm still using plain old subversion, instead of git-svn, which 
forces me to commit my changes, instead of keeping them in a half-baked 
state, in a local branch of a local repository. :) Maybe it's also worth 
mentioning that I actually dislike git. Previously, I didn't care, but 
now I contribute to some other projects, which use git and I'm 
constantly annoyed by the extra complexity and having the source control 
system stand in my way and preventing me from doing actual work.


Randomly picking some other authors, it seems most work is primarily 
in the RTL and FCL. A few small exceptions like Sven and Florian who 
mostly work in the compiler tree.


So this definitely doesn't convince me that compiler development is so 
different to other projects. And definitely doesn't rule out that Git 
couldn't work, or that an improved workflow couldn't be applied 
(freeing up time in the long run).
The problem is: the current FPC development model is working fine. 
There's nothing wrong with it. You're pushing git as a solution to a 
problem that doesn't exist and promising we'll see the light, as soon as 
we apply your solution.


But I get in now. You guys are set in your ways - good or bad, and 
currently not willing to change. So I'll leave it at that.
Of course, we are. There's nothing wrong with that. We have a solution 
that works and that's fine. Why do you want to persuade people to use 
git so much? Does it bother you so much that people are using a tool 
that you aren't using?


Here's an analogy of how the git bible-thumping looks to a subversion user:

Are you driving a car? I don't know whether you do or not, but let's 
suppose you are, for the sake of argument. Why don't you switch to a 
truck? It has many advantages over the car - everything you need to 
carry with a car, you can carry with the truck. Sure, it takes more time 
to learn how to drive it and to acquire license for it, but it's a 
worthy skill, since it'll make you a better driver. And as soon as you 
need to move a lot of stuff, you'll love the fact that you learned how 
to drive it and bought it. And sooner or later, it happens to everyone 
to have to move a lot of stuff. So, I don't understand why people are 
still using cars. They make no sense - they are too small and therefore, 
useless. I simply can't see why anyone would want something more 
lightweight. But you're living in a big, crowded city, with lots of 
small streets and you're not really carrying all that much with your 
car, you're only using it to go to work, so you think you don't need a 
truck? But these advantages only exist in the minds of the car owners - 
you can drive a truck in the city as well in more than 99% of the 
streets, where you can drive your car. And in traffic jams, it's only 
going to be 1-2% slower. And, if you're driving in an area, where it's 
not appropriate to drive a truck, but you can drive a car, this is a 
sure signal that you're doing driving wrong. If you have to drive small 
city streets it's better to leave your truck at home and walk instead. 
Cities are for walking, not for driving. But you like the option of 
driving 3 or 4 people? That's yet another misconception car drivers 
often have, which is a sure symptom they've never owned a truck and 
their mind works in an car-focused, truck-unaware, unenlightened way. In 
fact, you can easily fit a lot more people in the truck. You just put 
benches in the cargo area.


I hope 

Re: [fpc-other] Git & SVN

2017-05-24 Thread Graeme Geldenhuys

On 2017-05-24 21:07, Florian Klämpfl wrote:

I'm sorry to bust your bubble, but how different can compiler
development be.


Apparently it is:


Then why are you still talking to me.

I have my doubts that it can be _that_ different. To quote Marco "I see
to proof to make me think otherwise".



The workflow will not change. If the tool does not fit the workflow,
it is the wrong tool. Period.


Yes, habits (good or bad) are a hard thing to break. In that case, 
please enjoy your project further with SubVersion. Until you actually 
use a project with Git (not git-svn), we might talk again. But like you, 
I'm not holding my breath. ;-)



Regards,
  Graeme
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-24 Thread Nikolay Nikolov



On 05/24/2017 02:12 PM, Graeme Geldenhuys wrote:

On 2017-05-24 02:11, nore...@z505.com wrote:

I'd rather upload/commit files to a server to insure it is backed up
properly...


There is absolutely no guarantee that your file are any safer. So you 
have your Army of Developers in a single building. You store all your 
files on a Server which is in the server room in the basement of the 
building behind steel doors. Oh wait, a Boeing 747 fully fuelled just 
flew into your building. Everything is now a pile of rubble. Oh the 
backups where on another server next to the one you pushed changes to.
What if you have backups, distributed all over the globe? Oh wait, a 
meteorite hits Earth and wipes out all life. Everything is now a pile of 
rubble. Oh the backups where all stored on the same planet and now they 
are gone. :)


Nikolay
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-24 Thread Marco van de Voort
In our previous episode, Florian Kl?mpfl said:
> > If you haven't found the Git project documentation on this workflow, I'll 
> > find it for you and post
> > the URL.
> 
> The workflow will not change. If the tool does not fit the workflow, it is 
> the wrong tool. Period.

Even if we will change workflow more GIT like in time, the required leap of
faith and transition is too large. 

I think the Git advocatists should focus more on a workable model for a
transition and not some ideal in the far future.

Even a limited change is already a massive operation, let's keep it
managable.
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-24 Thread Florian Klämpfl
Am 24.05.2017 um 21:34 schrieb Graeme Geldenhuys:
> On 2017-05-24 19:11, Florian Klämpfl wrote:
>> You never developed a real world compiler and you have no real
>> insight into fpc development so you cannot know about this.
> 
> As a technical consultant for many clients I have seen a boat load of 
> projects from banking to
> online trading to educational etc. 

So no compiler? ...

> I'm sorry to bust your bubble, but how different can compiler
> development be. 

Apparently it is:

Am 23.05.2017 um 01:53 schrieb Graeme Geldenhuys:

>
> I don't know compiler design or how it works internally. So contributing in 
> that area is out of my
> scope.

:)

> If you haven't found the Git project documentation on this workflow, I'll 
> find it for you and post
> the URL.

The workflow will not change. If the tool does not fit the workflow, it is the 
wrong tool. Period.

___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-24 Thread Graeme Geldenhuys

On 2017-05-24 19:11, Florian Klämpfl wrote:

You never developed a real world compiler and you have no real
insight into fpc development so you cannot know about this.


As a technical consultant for many clients I have seen a boat load of 
projects from banking to online trading to educational etc. I'm sorry to 
bust your bubble, but how different can compiler development be. I'm not 
talking about the recursive build process, I'm talking about bug fixes 
and implementing new features.




Who tests and signs? Our testing facilities cannot test more than a
few (1, 2 maybe 3) branches nightly as we use build farms used also


Like the Git project, you can merge all new work into a testing branch. 
That could be what "trunk" is now. Once features have been tested by FPC 
core members or community - using that trunk branch, those signed off 
features can be merged into a more stable development branch... lets 
call it "develop" (or in terms of the Git project, call in "next"). The 
"next" branch will always be more stable that "trunk". The "next" branch 
is also the one the next release (hence the name) will be based forked from.


If you haven't found the Git project documentation on this workflow, 
I'll find it for you and post the URL.


I think actually the 'git help workflows' command lists that same 
information.



Regards,
  Graeme

--
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/

My public PGP key:  http://tinyurl.com/graeme-pgp
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-24 Thread Florian Klämpfl
Am 24.05.2017 um 08:57 schrieb Graeme Geldenhuys:
> 
> Once again, read how the Git project deals with it. That workflow could suite 
> FPC quite well. 

You never developed a real world compiler and you have no real insight into fpc 
development so you
cannot know about this.

> In
> summary, feature are in separate branch. There is a public "testing stablish 
> changes" and a public
> "testing unstable" branches. Everything stays in branches until they are 
> signed off and merged into
> "master" (aka Trunk). Then less than 5 minutes is spend doing a "octopus 
> merge" of all branches that
> have been well tested and signed.

Who tests and signs? Our testing facilities cannot test more than a few (1, 2 
maybe 3) branches
nightly as we use build farms used also by other people. Further we test also 
on slow system, where
one run takes >1h. We have already >150 regression test runs per night with 
different parameters, on
difference architectures etc. This cannot be extended. Everything not in trunk 
(or master/) fixes is
not seriously tested and cannot seriously be tested, due to lacking resources. 
So feature branches
make only sense for big changes (as we do already with svn).

Or tests the "crowd" which makes OSS so powerful and everything is reviewed by 
dozens of people?
Looking at the problems FPC 3.0.2 has, people even didn't test release 
candidates seriously. And
some branch for a single feature? May I laugh?
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-24 Thread Tomas Hajny
On Wed, May 24, 2017 16:51, Graeme Geldenhuys wrote:
> On 2017-05-24 15:30, Tomas Hajny wrote:
>> I have my doubts about availability of the GUI component for OS/2, but
>> you're welcome to prove me wrong. ;-)
>
> I haven't personally tried Git under OS/2, but I have two OS/2 VMs
> available, so I'll test.
>
> Does OS/2 have a port of TCL/TK? That's what those GUI's are written in.

I could find a port of Tcl/Tk version 8.3.5 on Hobbes. No idea if there
are newer ports somewhere else.

Tomas


___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-24 Thread Luca Olivetti

El 24/05/17 a les 16:03, Graeme Geldenhuys ha escrit:

On 2017-05-24 14:38, Luca Olivetti wrote:

$ LC_ALL=C git gui
git: 'gui' is not a git command. See 'git --help'.


I guess you can blame your Linux distro's rubbish package management 
requirement policies for that. They probably split Git into two or more 
packages. F**ken annoying if you ask me - hence I don't use Linux any more.


Right, unsurprisingly it's in the git-gui package.


bye
--
LUca

___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-24 Thread Mark Morgan Lloyd

On 24/05/17 13:30, Graeme Geldenhuys wrote:

On 2017-05-24 12:46, Mark Morgan Lloyd wrote:>  >



could usefully be described as v1.4.1-787, and you can use that in>
conversation without having to be online to a repository.
Yes, you can use "v1.4.1-787" to describe a specific point in history,
but the far more common and useful one is the "45f932c1" SHA1 reference,
because the latter can be used directly in all Git commands.


If multiple people were committing directly to the same repository (I>
presume Git supports that)

Yes.

 presumably they'd see a consistent sequence> of version identifiers,
i.e. very much like Subversion.

Yes. A SHA1 reference like "45f932c1" only only points to a specific
commit, it also describes the history that lead to that point.



What happens in the case where there's multiple repositories?

No difference. A git repo contains the full history. If you clone that
repository 100 times between developers, you effectively have a 100
backups. If the original repo had 5 branches, all 100 clones with have
references (and full history) to those 5 branches too. Such remote
branch can be listed using the following command:
  git branch -r


Thanks very much for that, very interesting.

--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-24 Thread Graeme Geldenhuys

On 2017-05-24 15:30, Tomas Hajny wrote:

I have my doubts about availability of the GUI component for OS/2, but
you're welcome to prove me wrong. ;-)


I haven't personally tried Git under OS/2, but I have two OS/2 VMs 
available, so I'll test.


Does OS/2 have a port of TCL/TK? That's what those GUI's are written in.

Regards,
  Graeme

___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-24 Thread Graeme Geldenhuys

On 2017-05-24 15:32, Santiago A. wrote:

But IMHO it
clearly shows how poorly git defaults and parameters have been chosen.
And I am afraid that has been one of the hinders of git adoption.


The problem goes much deeper than that. I once brought up the issue of 
inconsistent command line parameters in the Git mailing list and gave 
ideas I thought were improvements.


They immediately confirmed the problem, and the problem in finding a 
solution. Some issues raised:


  * Because git has so many options (way more than normal apps), one
change can (and does) have affects on others.
  * Backwards compatibility. Changing the commands will break just about
every Git GUI front-end there is. Many of them simply parse the
output of a forked 'git' command. But they would actually consider
doing this for the greater good - I was impressed.
  * Conflicting command line parameter "modes".


If interested, the discussion can be found here:

   https://www.mail-archive.com/git@vger.kernel.org/msg76433.html


Regards,
  Graeme

--
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/

My public PGP key:  http://tinyurl.com/graeme-pgp
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-24 Thread Santiago A.
El 24/05/2017 a las 13:41, Graeme Geldenhuys escribió:
>
> Git has built-in support for alias. So you could simply define a
> couple of aliases in your $HOME/.gitconfig file that mimic the above
> commands, or even the SVN commands. I have over 20 aliases that I
> created over the years to simply long command line parameters.
>

> Now suddenly I can do this:
>
>   $ git switch develop
>

Maybe with Alias I don't need eg to redefine git CLI. But IMHO it
clearly shows how poorly git defaults and parameters have been chosen.
And I am afraid that has been one of the hinders of git adoption.

Here is an overview Easy Git (eg) parameters
https://people.gnome.org/~newren/eg/documentation/
I think it shows how git parameters should had been.


-- 
Saludos

Santiago A.

___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-24 Thread Tomas Hajny
On Wed, May 24, 2017 16:03, Graeme Geldenhuys wrote:
> On 2017-05-24 14:38, Luca Olivetti wrote:
>> $ LC_ALL=C git gui
>> git: 'gui' is not a git command. See 'git --help'.
>
> I guess you can blame your Linux distro's rubbish package management
> requirement policies for that. They probably split Git into two or more
> packages. F**ken annoying if you ask me - hence I don't use Linux any
> more.
>
> I compile Git from the original source code, and it includes
> everything... Console, GUI and SubVersion support.

I have my doubts about availability of the GUI component for OS/2, but
you're welcome to prove me wrong. ;-)

Tomas


___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-24 Thread Graeme Geldenhuys

On 2017-05-24 15:03, Graeme Geldenhuys wrote:

I compile Git from the original source code, and it includes
everything... Console, GUI and SubVersion support.


On this web page the first two screenshots are of gitk and git-gui - the 
standard GUI tools of Git.



https://git-scm.com/book/uz/v2/Git-in-Other-Environments-Graphical-Interfaces

They might not look as visually pleasing (eye-candy) as many other gui 
tools, but trust me, these built-in apps pack a punch (tons of 
features), and always supports git very well - obviously.



Regards,
  Graeme

___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-24 Thread Luca Olivetti

El 24/05/17 a les 13:02, Graeme Geldenhuys ha escrit:

On 2017-05-24 01:26, nore...@z505.com wrote:

line much, but it serves my need very well visually committing which
files I need, which IMO is faster and more productive than running 5
different commands on files I have to manually type in or keep pressing


Git includes as standard all the GUI tools you would ever need. Plus 
those GUI tools are available on all platforms that Git supports. So 
there is no retraining in different tools for each platform. eg: 
Tortoise Git is only available on Windows. So if you jump to OSX or 
Linux or FreeBSD, you need to learn a different tool.


Or use mercurial with tortoisehg (note:when I switched from cvs to 
mercurial, git was not available for windows, while mercurial was 
already stable and multi-platform. I cannot claim I understand mercurial 
fully, but at least I can use it for basic tasks with no surprises, 
while my experience with git is like https://xkcd.com/1597/)





Anyway, the standard git GUI tools...

   * git gui:  visually make commits, do branch management, selective
 line-by-line commits, pull, push, merge etc.


$ LC_ALL=C git gui
git: 'gui' is not a git command. See 'git --help'.

Did you mean one of these?
gc
grep
init
pull
push

Bye
--
Luca
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-24 Thread Graeme Geldenhuys

On 2017-05-24 12:46, Mark Morgan Lloyd wrote:

 >   [reportdesigner (reportdesigner)]$ git describe
 >   v1.4.1-787-g45f932c1
 >
 > What does that output tell me:
 >   * Whatever code I'm working on is follow on from the "v1.4.1"
 > release.
 >   * This line of [development] history has seen "787" commits
 > since the v1.4.1 release.

says explicitly that the modification with the hash g45f932c1 takes the
project on the Git repository under consideration to something that
could usefully be described as v1.4.1-787, and you can use that in
conversation without having to be online to a repository.


Yes, you can use "v1.4.1-787" to describe a specific point in history, 
but the far more common and useful one is the "45f932c1" SHA1 reference, 
because the latter can be used directly in all Git commands.




If multiple people were committing directly to the same repository (I
presume Git supports that)


Yes.


 presumably they'd see a consistent sequence
of version identifiers, i.e. very much like Subversion.


Yes. A SHA1 reference like "45f932c1" only only points to a specific 
commit, it also describes the history that lead to that point.


Let me explain: Say you have two branches with the same file, and the 
file hasn't actually changed between those two branches. Now say I give 
you a patch file to apply to that file in both branches. The commits 
that gets generated in each branch - even though the diff is identical - 
will not have the same SHA1 reference. Because the history to get to 
that point has diverged because of the branching.


So if I mention a problem in the "45f932c1" commit of a Git repository. 
No matter how many clones [by multiple developers] there are of that 
repository, that SHA1 reference will point to the exact commit and code 
change - in all the Git repositories out there in the wild.


This is also one of the huge arguments about NOT using the git-rebase 
command on a branch that has been published, because a rebase command 
rewrites the history. So every commit (SHA1 reference) in that affected 
branch changes. Rebasing local branches (not made public yet) is 
obviously not a problem.


The Git project repo has a "short lived" branch where they do all kinds 
of testing. They explicitly note that nobody should base any new 
development on that branch, because it will frequently be destroyed and 
recreated (merging in new feature to be tested for the next cycle).




What happens in the case where there's multiple repositories?


No difference. A git repo contains the full history. If you clone that 
repository 100 times between developers, you effectively have a 100 
backups. If the original repo had 5 branches, all 100 clones with have 
references (and full history) to those 5 branches too. Such remote 
branch can be listed using the following command:


  git branch -r

eg:

[tiopf (tiopf2)]$ git branch -r
  carlo_marona/Add_tiLogToDebugString
  carlo_marona/Additional_Mediators
  carlo_marona/Fix_BOOLEAN_Defines
  carlo_marona/Fix_TtiDatabaseZeosAbs_SetConnected_Except
  carlo_marona/Fix_tiCriteria_AssignClassProps
  carlo_marona/Fix_tiMediatorView
  carlo_marona/Fix_tiModelMediator
  carlo_marona/Fix_tiQueryZeosIBFB_Unit
  carlo_marona/tiOIDManager_Update
  carlo_marona/tiopf3
  github/master
  github/tiopf1
  github/tiopf2
  github/tiopf3
  sourceforge/HEAD -> sourceforge/master
  sourceforge/fea_Fix_Event_Execution_Of_TtiPropertyLinkDef
  sourceforge/fea_Missed_Changes_On_tiOPF3
  sourceforge/master
  sourceforge/tiopf1
  sourceforge/tiopf2
  sourceforge/tiopf3


Here you can see my local tiOPF repository has 3 remote repositories 
defined. "carlo_marona", "github" and "sourceforge". I frequently pull 
fixes from Carlo, so that is why I have a permanent remote repository 
link to his published work. For contributions from one-off developers I 
don't bother setting up a remote repository link - I use their 
repository URL directly in the git-fetch command.


The official public tiOPF repository lives on SourceForge.net, so that 
is the "sourceforge" remote repo link. The "github" link was just a 
backup public repo I used while SourceForge.net had a major global 
outage a little while ago. So development continued as usage without 
skipping a beat (thanks Git).


You can also see from Carlo's repository that he nicely names each 
branch, and every branch that is a bug fix has the prefix name "Fix_" to 
it. In the end you can name branches whatever you want though, and you 
can even groups things with a "/" in the name of the branch.








Regards,
  Graeme

--
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/

My public PGP key:  http://tinyurl.com/graeme-pgp
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-24 Thread Graeme Geldenhuys

On 2017-05-24 12:49, Mark Morgan Lloyd wrote:

s the licensing problem (Sun's license being
incompatible with GPL) which resulted in a lot of FUD.


It's only a problem if you want it to be. Yes, they can't include ZFS as 
standard with a Linux Distro (though some now apparently do), it is is 
pretty much a two command step to get it installed.


  1)  // Add the add-on apt repository to your list
  2) apt-get install zfs

Something like that - its been a while since I did that in my dual-boot 
Linux environment. Also ZFS doesn't run via FUSE on Linux any more - it 
is a "native" file system now.


  https://launchpad.net/~zfs-native/+archive/ubuntu/stable
  http://zfsonlinux.org/

The really good news is that for some time now, all ZFS development is 
merged into a single organization. So OSX, Linux, FreeBSD all have the 
same ZFS features and functionality. No more fragmented development.


Regards,
  Graeme

--
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/

My public PGP key:  http://tinyurl.com/graeme-pgp
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-24 Thread Karoly Balogh (Charlie/SGR)
Hi,

On Wed, 24 May 2017, Graeme Geldenhuys wrote:

> If the Free Pascal team is ever serious about migrating to Git, I'll
> happily help out with the migration process.

Well, I think the resistance is too big for the migration. The SVN people
go full berserk bloodbath mode when Git is mentioned, and Git people
usually go "whatever" and just use git-svn. :)

But. If we could come up with a way, which allows accepting pull requests
with Git somehow (thinking about Github, specifically, but in general),
then have them seamlessly integrated into upstream SVN as they're
accepted, that would maybe move things forward. (Remember, we even have an
FPC organization on Github, which we can utilize.)

With the more automated verifications regarding the integrity of the SVN
the better. But Marco was right on the point, that this needs a very very
carefully designed plan and process, to not screw up the upstream SVN.
Maybe what LLVM and GCC has in place can serve as a starting point.

And to be honest, I wouldn't even have the full SVN mirror "published" in
Git, only trunk, and branches fixes_3_0 and newer, with the later being
read only, as merges would happen by the maintainer, in SVN.

So yeah, TL;DR: instead of trying to fix people we could use engineering
to make the technology just serve us all. :)

Charlie
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-24 Thread Mark Morgan Lloyd

On 23/05/17 14:10, Mark Morgan Lloyd wrote:


One question if I may. Subversion has revision numbers like 12345, and
it's comparatively easy to query that and build it into a piece of
software's version information. It's also trivial for a developer to
look at the revision that he's currently working with, to say whether
it's older or newer than revision 12345, and to get a log of what the
relative changes were by /only/ knowing the revision number.
Now I don't deny for a moment that Git has its advantages for
distributed working. But am I correct in my understanding that it has
nothing that maps directly onto the monotonic revision list of
traditional VCSs including Subversion?


Apologies for the poor threading, but not all ML messages get through 
our gateway.


Thanks for the explanation Graeme, I hope that I'm not the only person 
here to find that instructive. So in the context of what I asked


>   [reportdesigner (reportdesigner)]$ git describe
>   v1.4.1-787-g45f932c1
>
> What does that output tell me:
>   * Whatever code I'm working on is follow on from the "v1.4.1"
> release.
>   * This line of [development] history has seen "787" commits
> since the v1.4.1 release.

says explicitly that the modification with the hash g45f932c1 takes the 
project on the Git repository under consideration to something that 
could usefully be described as v1.4.1-787, and you can use that in 
conversation without having to be online to a repository.


If multiple people were committing directly to the same repository (I 
presume Git supports that)  presumably they'd see a consistent sequence 
of version identifiers, i.e. very much like Subversion.


What happens in the case where there's multiple repositories? How 
brutally would each one have to be whacked before it was guaranteed that 
every one had the same correspondence of release-commit tuples and 
hashes? Could this be /forced/ at the project level and what 
implications would that have on the amount of data transferred to 
synchronise them?


--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-24 Thread Mark Morgan Lloyd

On 24/05/17 08:30, Graeme Geldenhuys wrote:


Sorry, I've just had too many hard drives fail on me... so many fail>
that it's almost as if someone was doing it on purpose to me.

Sounds like you are in serious need of ZFS. If you work on a laptop (so
can't install 3+ hard drives), then I recommend you get one of those
USB3 or Thunderbolt port external NAT-style storage devices. I know some
of them support ZFS. But those storage devices are a bit costly. But
then, how much is your data worth?


I agree, it's really very good indeed and I think the only reason that 
it's not more widely used is the licensing problem (Sun's license being 
incompatible with GPL) which resulted in a lot of FUD.


--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-24 Thread Graeme Geldenhuys

On 2017-05-24 12:32, Karoly Balogh (Charlie/SGR) wrote:

missing from the converted repo, at least the one the FPC Team had
internally. As in, the history wasn't complete. Not sure what that means


The bottom line is, the end result should be identical to what you see 
when you do a 'svn co' on any branch, compared to the Git migrated 
version. At least this was my case in all the conversions I have done.


Some of the git-svn output is weird though. They sounds more alarming 
than they really are. eg: If you had a commit that only changes svn 
properties, I believe sometimes git can skip over such commits because 
there is no direct translation to Git. But those are generally rare, and 
often not an issue, because it was more SVN repo maintenance that 
actually tracking changes to files. The latter being way more important.


If the Free Pascal team is ever serious about migrating to Git, I'll 
happily help out with the migration process.


Regards,
  Graeme

--
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/

My public PGP key:  http://tinyurl.com/graeme-pgp
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-24 Thread Graeme Geldenhuys

On 2017-05-24 08:21, Santiago A. wrote:

i.e. instead of

git checkout master
git checkout develop

eg switch master
eg switch develop


Git has built-in support for alias. So you could simply define a couple 
of aliases in your $HOME/.gitconfig file that mimic the above commands, 
or even the SVN commands. I have over 20 aliases that I created over the 
years to simply long command line parameters.


For example:

  $ git config --global alias.switch checkout

will result in the following

-[ ~/.gitconfig ]-
[alias]
   st = status -uno
   svnlog = log --stat=70 --pretty=medium --name-status --reverse
   ...snip...
   switch = checkout

--


Now suddenly I can do this:

  $ git switch develop


No need for Perl add-ons. ;-)

ps:
  Above I listed two of my most used aliases as well. I have plenty of
  others too.




  git checkout master
  git merge feature1 feature2 feature3 feature4 feature5

...where "featureX" is a branch name.


Yes, that's very handy... and scaring.
The merge is done magically in the repository, not in a working machine,


Everything is done locally first. So if you are not happy with the 
result, it can be undone with a simple git-reset command.




Regards,
  Graeme

--
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/

My public PGP key:  http://tinyurl.com/graeme-pgp
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-24 Thread Karoly Balogh (Charlie/SGR)
Hi,

On Wed, 24 May 2017, Graeme Geldenhuys wrote:

> Back in 2009 (I think it was) when I created Git mirrors of FPC and
> Lazarus, I initially did it with all branches and tags in place. It took
> long, but there was no roadblocks.

I think the claim was, after the svn 2 git conversion, some commits were
missing from the converted repo, at least the one the FPC Team had
internally. As in, the history wasn't complete. Not sure what that means
though, or which commits, commits of which nature, or why. Maybe Florian
can ellaborate on this.

Charlie
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-24 Thread Graeme Geldenhuys

On 2017-05-23 19:37, Florian Klämpfl wrote:

First problem: quote from core:


The git-to-svn bridge is slow, but pretty good - not perfect, sometimes 
it falls over and needs a restart. But I can honestly say, I have 
converted full SubVersion repositories (from small to very large) to 
Git, and always managed to have everything in Git at the end.


Nobody ever stated that any type of migration is going to be without 
problems. It's the nature of migration. I've stated numerous times that 
SubVersion is often abused because they have very bad concepts, which 
have been clearly designed and developed in Git. "Tags" are the first 
thing that comes to mind.


Back in 2009 (I think it was) when I created Git mirrors of FPC and 
Lazarus, I initially did it with all branches and tags in place. It took 
long, but there was no roadblocks. The only reason I then changed it to 
only track the "trunk" branches is because I personally think a 
migration should be a one-shot deal, not a continuous process. It was a 
pain to manually update and work around the weird SubVersion behaviours 
(commits after a Tag was created - God Damn, use a branch instead!).


Over the years I've personally migrated over 200 SubVersion repositories 
to Git. My final step has always been to checkout each SVN repository 
and branch, and then do a checksum comparison to the Git version. 
Ensuring everything is like it is supposed to be. Any discrepancies can 
then be resolved with a single commit, but to be honest, I can't recall 
ever having the need to do that.


Regards,
  Graeme

--
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/

My public PGP key:  http://tinyurl.com/graeme-pgp
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-24 Thread Santiago A.
El 24/05/2017 a las 8:57, Graeme Geldenhuys escribió:

My company uses svn and I use git for my local work since Mr Geldenhuys
praised it a year or two ago ;-). For me, branching is the really the
big thing. I have several branches running, and I only commit to svn
repository after testing everything.

Git is complicated, I don't mean it is overcomplicated, just it's more
complicated than svn because it tries to accomplish more and more
complicated tasks than svn. In fact, the discuss shouldn't be svn vs
git, but centralized version control vs distributed version control.
Nevertheless, git has a complicated and anti-intuitive command line
syntax. Git is the winner over others, like Mercurial, because of Linus
Torvald's popularity, not that Git is better or worse than Mercurial,
just that their technical virtues had little to do with the success of
git.  I use Easy Git, It is a perl script that In the background it
calls git, but syntax is more sensible.

i.e. instead of

git checkout master
git checkout develop

eg switch master
eg switch develop



>
>   git checkout master
>   git merge feature1 feature2 feature3 feature4 feature5
>
> ...where "featureX" is a branch name.

Yes, that's very handy... and scaring.
The merge is done magically in the repository, not in a working machine,
It is a little black box. But it's looks that it manages to do its job.
Nevertheless I have had some unexpected issues... it is scaring. :-P

Should I recommend git for central repository in my company? Not sure.
What's the difference between pulling from several repositories and
pushing to a central repository? In the end, I prefer the central
repository with a more lineal history. I think that distributed
development works better when there is a big project with independent
parts. For me, in Git is much important de advantage of easy local
branches that distributed development.

On the other hand, probably I'm getting old ;-) :-(

-- 
Saludos

Santiago A.

___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-24 Thread Graeme Geldenhuys

On 2017-05-24 02:11, nore...@z505.com wrote:

I'd rather upload/commit files to a server to insure it is backed up
properly...


There is absolutely no guarantee that your file are any safer. So you 
have your Army of Developers in a single building. You store all your 
files on a Server which is in the server room in the basement of the 
building behind steel doors. Oh wait, a Boeing 747 fully fuelled just 
flew into your building. Everything is now a pile of rubble. Oh the 
backups where on another server next to the one you pushed changes to.


;-)

Regards,
  Graeme

--
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/

My public PGP key:  http://tinyurl.com/graeme-pgp
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-24 Thread Graeme Geldenhuys

On 2017-05-24 01:26, nore...@z505.com wrote:

line much, but it serves my need very well visually committing which
files I need, which IMO is faster and more productive than running 5
different commands on files I have to manually type in or keep pressing


Git includes as standard all the GUI tools you would ever need. Plus 
those GUI tools are available on all platforms that Git supports. So 
there is no retraining in different tools for each platform. eg: 
Tortoise Git is only available on Windows. So if you jump to OSX or 
Linux or FreeBSD, you need to learn a different tool.


Anyway, the standard git GUI tools...

  * git gui:  visually make commits, do branch management, selective
line-by-line commits, pull, push, merge etc.

  * gitk: visually see your commit history. For a specific branch, or
 all branches in the repo. You can also cherry-pick commits from
 one branch into another.

  * gitk --  See the full history for a specific file only, or
for a directory only.

  * git gui blame: visually see line-by-line who made which changes.

All these gui tools also have built-in navigation, where if you click on 
a SHA1 it navigates to it.





The point is that github does in fact allow you to treat a github repo
like an SVN one,


Ah, I see that now. I never knew that existed. It is definitely a Github 
only thing.



Regards,
  Graeme

--
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/

My public PGP key:  http://tinyurl.com/graeme-pgp
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-24 Thread Marco van de Voort
In our previous episode, nore...@z505.com said:
> >> impossible person is usually swiftly dealt with.
> 
> > 
> > Honestly, I can't even... You sound like the Expert Beginner Twitter
> > account. No personal offense intended, but you just do.
> > 
> 
> He's talking about Army of Programmers in a Building, an article I wrote 
> years ago ;-)
> 
> Sometimes it's better to just walk over and talk to a real programmer in 
> a real building than it is to send some email over the christmas 
> holidays and wait 2 weeks for a reply for him to commit his changes.. 
> since he's in Barbados or Cuba on vacation.

The scenario was based on older commercial VCS systems (VSS, that Team thing
from Borland etc etc) that required explicit locking, and people would lock
files, change some formatting and then go on holiday before their real work
started.  During that time nobody could make changes to those files, and
even back then we already had some form of CI to a testserver that worked
from the VCS, so that also hampered testing your own mods.

Locks were notorious hard to break, and persons with the required
rights were often also rare during those periods.

And yes, if you did that, specially if the file was something central (like
a file that listed all commands accepted by the command processor), people
could get somewhat aggressive ;-)

The DVCS scenario is not as bad, but some simple prevention of this would
prevent some mistakes, and make the minefield for new devels a bit smaller,
thus save a lot of annoyance on all sides.

___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-24 Thread Graeme Geldenhuys

On 2017-05-24 02:46, nore...@z505.com wrote:

But what happens with corrupted or failed hard drive on your personal
computer? Do you have any backups or is this local git work only on one


I used to live in a country with constant blackouts or brownouts. So 
harddrives took a real punishment. UPS's were a requirement, not a 
luxury. So I take data protection very seriously, even though where I 
live now the power is much more reliable and clean.


Yes, I have off-site private backups, and on occasion I push those to a 
USB stick too. Everybody should at least be doing this.


I also know how valuable my work and data is - I run my own business. 
All my data, code and VMs lives on 4 server quality harddisks using ZFS 
RAID-Z2 as the file system, and FreeBSD as my OS of choice. I will not 
trust my data on anything other than ZFS. Even my USB sticks use ZFS. My 
hard drives were bought from different suppliers so they aren't all from 
the same batch. I also replace them every 3-4 years (ZFS makes this a no 
brainer).


I highly recommend you read up on ZFS if you don't know it. It comes 
natively with Solaris and FreeBSD, and is easily installed on Linux. I 
believe OSX might also have unofficial support now.


ZFS is a copy-on-write files system. Every read and write is 
checksummed. I can have two hard drives fail (very very unlikely) and 
still be able to rebuild my data. Very sensitive data I store in a 
partition that keeps two copies of the data scattered around the ZFS 
pool. ZFS partitions can be created and destroyed on the fly - they are 
more like directories than partitions. So you can create and destroy 
partitions as the need arises, and set encryption, compression, 
de-duplication etc on each partition as you see fit.




Sorry, I've just had too many hard drives fail on me... so many fail
that it's almost as if someone was doing it on purpose to me.


Sounds like you are in serious need of ZFS. If you work on a laptop (so 
can't install 3+ hard drives), then I recommend you get one of those 
USB3 or Thunderbolt port external NAT-style storage devices. I know some 
of them support ZFS. But those storage devices are a bit costly. But 
then, how much is your data worth?




Regards,
  Graeme

--
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/

My public PGP key:  http://tinyurl.com/graeme-pgp
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-24 Thread Graeme Geldenhuys

On 2017-05-23 21:41, Florian Klämpfl wrote:

This is what I do as well for several things, but I still think, subversion is 
the better solution
as the canonical FPC repository.


The ‘git-svn’ functionality is great - I use it for several SubVersion 
projects too. It also unfortunately stops you from using many of the 
nicer features of Git. So you definitely don’t get the full experience - 
it’s more like the “cheap seats” at a concert. You can say you were 
there and heard the band sing, but you couldn’t actually see them.


Regards,
  Graeme

___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-24 Thread Graeme Geldenhuys

On 2017-05-24 02:01, nore...@z505.com wrote:

I like the ability to fork, as I am sick of developers not allowing me
to make some change, and I go off and work myself on some fork but..
it's also anti-social and leaves projects in so many forks that no one


"fork" is probably the wrong word. I prefer the word "clone" instead. It 
is only anti-social if YOU (the developer) don't share your changes. You 
do that by sending a pull request to the original project.


See...

  git help request-pull

...for more details. And no, you don't require GitHub for pull requests, 
it's built right into Git.



Regards,
  Graeme

--
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/

My public PGP key:  http://tinyurl.com/graeme-pgp
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-24 Thread Graeme Geldenhuys

On 2017-05-23 21:19, Marco van de Voort wrote:

I was not asking for ideally. I was asking very specifically how a GIT in a
FPC team group would work.

And no, sending 40+ pull requests to all members of core does not count. So
there is one golden repo and that is what I'm talking about.


And like I explicitly said, read the well documented processes followed 
by the Linux Kernel or on a much smaller scale, the Git development itself.




I would like to have lots of extra manpower too, but I rather not spend it
on what in practice would be rubberstamping commits (and delays in
distribution till something is approved if the reviewers are AFK).


Once again, read how the Git project deals with it. That workflow could 
suite FPC quite well. In summary, feature are in separate branch. There 
is a public "testing stablish changes" and a public "testing unstable" 
branches. Everything stays in branches until they are signed off and 
merged into "master" (aka Trunk). Then less than 5 minutes is spend 
doing a "octopus merge" of all branches that have been well tested and 
signed.


If you don't know, a octopus merge is a single merge command but merges 
2+ branches all in one go. eg:


  git checkout master
  git merge feature1 feature2 feature3 feature4 feature5

...where "featureX" is a branch name.

Unlike SubVersion, you don't waste a whole day "rubber stamping" 
commits. Such micro-management doesn't exist in Git. Git was designed to 
work better that SubVersion, and specificall at branch management and 
merging.


Hence my earlier WTF comment when I read the LLVM team want- to ban 
merge commits! That person clearly has no f**ken idea how Git works.




In distributed, volunteer driven, projects, people are away/nonresponsive for
extended periods of time, working hours (and days) don't match. Also working
this out via mail is much less productive.


Then simply don't pull or merge their work. Simple as that. Once again, 
you are thinking in terms of SubVersion. Don't!


You don't see the Linux Kernel project come to halt when somebody fucks 
up a commit - they just don't merge that commit or branch until the 
idiot fixed his work. And neither do they have communications problems 
via emails or the mailing list - they have tens of thousands of 
contributors spanning the globe. So I don't understand why you think 
such a small project like FPC will have communication issues. That's 
just laughable.




Sorry to say, but I didn't find anything new or usable in this post.


Actually, it's only your stubbornness showing. I thought Karoly's reply 
was very informative.




Regards,
  Graeme

--
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/

My public PGP key:  http://tinyurl.com/graeme-pgp
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-23 Thread noreply

On 2017-05-23 17:41, Graeme Geldenhuys wrote:

On 2017-05-23 21:16, Florian Klämpfl wrote:

... and the code is lost :)


Not at all, I have about 20+ local branches in my fpGUI repository.
Some branches date back to 2009, 2010. Ideas I had, but lost
motivation, or they were simply an experiment (that could be useful at
some point). Just 2 days ago I revived a 5 year old branch and finally
completed the work.


But what happens with corrupted or failed hard drive on your personal 
computer? Do you have any backups or is this local git work only on one 
personal hard drive that could fail at any time?



Sorry, I've just had too many hard drives fail on me... so many fail 
that it's almost as if someone was doing it on purpose to me.


Do you make some backups on a usb stick or some server elsewhere no one 
can see?

___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-23 Thread noreply

On 2017-05-23 15:36, Karoly Balogh (Charlie/SGR) wrote:

> At work, I don't even push against master, but I do a pull request
> against my own repository, and ask one of my senior colleagues to
> review... I don't know about you, but to me this sounds a lot more
> like teamwork, than going around beating up people "for wrongdoing"
> with a cluestick.

Then you don't understand what I mean. In the job you go see the 
person,

work something out, and problem sorted in a few minutes. The odd
impossible person is usually swiftly dealt with.




Honestly, I can't even... You sound like the Expert Beginner Twitter
account. No personal offense intended, but you just do.



He's talking about Army of Programmers in a Building, an article I wrote 
years ago ;-)


Sometimes it's better to just walk over and talk to a real programmer in 
a real building than it is to send some email over the christmas 
holidays and wait 2 weeks for a reply for him to commit his changes.. 
since he's in Barbados or Cuba on vacation.


With Army of Programmers in a Building you can just go and knock on his 
door, or his cubicle, instead of this pathetic thing called Email.


The disadvantage of working in the same town/building as someone, 
though, is that they may always be bothering you non stop and tapping on 
your shoulder, but not really since programmers aren't that obnoxious, 
AFAIK


This development on the internet across multiple countries has some 
massive disadvantages to something like the Microsoft Campus where you 
can go over and knock on the guys door, or at Borland (although, they 
are hiring people offshore AFAIK now)


And sometimes typing out a long email takes time, instead of just being 
able to speak in real time to a real person - an email is like a fixed 
essay, whereas a conversation is in real time, instant. They have IRC 
for this, I guess, but that becomes addictive and wastes lots of time, 
IMO, and you don't get as much work done if you are chit chatting 
nonstop on irc/icq/message systems

___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-23 Thread noreply

On 2017-05-23 17:33, Graeme Geldenhuys wrote:

On 2017-05-23 21:10, Karoly Balogh (Charlie/SGR) wrote:

Now, in Git, this idiot can do:


Plus that idiot could start the fork and his branch without needing to
bother the FPC team. With SVN he has to ask them to add him to the
SubVersion repo user list, create a branch, and manage his user
permissions for that branch.



Yes but forking is a double edged fork (sword)...
You can fork so easily that no one actually works together and then you 
have 218982 versons of emacs floating about that no one actually uses, 
because so many forks splits up the userbase and then everyone just ends 
up using a central version of emacs, the main copy



Git = KISS is this case. ;-)



Everyone making thousands of forks and not working together is not 
simpler, it's just a different way


I like the ability to fork, as I am sick of developers not allowing me 
to make some change, and I go off and work myself on some fork but.. 
it's also anti-social and leaves projects in so many forks that no one 
works together. Everyone forks github repos and then you cannot search 
the damn code on github, as forks are not searchable - so no one can 
find good updated code, you just see the main git repo, which, is kind 
of like having a central svn repo! but with thousands of stale forks???

___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-23 Thread noreply

On 2017-05-23 09:01, DaWorm wrote:

emacs!  vi!

Let's call the whole thing off and use EDLIN.


Don't forget mg

https://www.google.ca/search?q=mg+micro+gnu+emacs

From what I remember, this one had some nice simple C source code 
instead of bloated projects..

___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-23 Thread noreply

On 2017-05-23 04:23, Graeme Geldenhuys wrote:

On 2017-05-22 23:11, nore...@z505.com wrote:

What happens if you use the SVN bridge that allows you to run svn
commands to a git server?


Maybe your wording is confusing, or SVN has abilities I didn't know
of.


it may just be a github thing, I'm not sure. Not git, possibly, but 
github has an SVN bridge that allows you to treat a github repo just 
like an SVN repo, and run svn commands.
I use total commander for most of my SVN work with tortoise svn, which 
sounds like I am some kind of newbie/beginner since I don't use command 
line much, but it serves my need very well visually committing which 
files I need, which IMO is faster and more productive than running 5 
different commands on files I have to manually type in or keep pressing 
the up arrow to repeat old commands (seems like 1970's way of doing 
things on unix, which I avoid) But I guess that is another issue.


The point is that github does in fact allow you to treat a github repo 
like an SVN one, so I wondered if Florian had tried this - but I guess 
you might as well use SVN if you are going to make github "like svn" 
instead of actually being svn. Key advantage: use github awesome web 
interface gui, plus have svn like revision...


IMO the big success of git is not git, but the github website which is 
visually stunning, beautiful, and productive - along with being a great 
social tool (although, I'm not so social). Only gripe I have about 
github is the fact that you cannot search forks! Searching forks on 
their website is essential for finding other people's code, and you 
cannot do that. you can't search any forks??? wtf..

___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-23 Thread noreply

On 2017-05-23 04:23, Graeme Geldenhuys wrote:

On 2017-05-22 23:11, nore...@z505.com wrote:

What happens if you use the SVN bridge that allows you to run svn
commands to a git server?


Maybe your wording is confusing, or SVN has abilities I didn't know
of. I know Git can manage SVN repositories, but I didn't know it was
possible other way round (I doubt it is possible).


I use it every day.

When I hired someone for a bounty, he introduced me to it, and I have 
been using it ever since :-)

p.s. Thanks Dmitry! ;)

It's my stubborn old practice of not wanting to learn a new tool, Git, 
when SVN was working quite fine for my needs, but I do admit I don't 
have experience working with thousands/hundreds of developers all on the 
same repo, I more use it for my own need.

___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-23 Thread Graeme Geldenhuys

On 2017-05-23 21:16, Florian Klämpfl wrote:

... and the code is lost :)


Not at all, I have about 20+ local branches in my fpGUI repository. Some 
branches date back to 2009, 2010. Ideas I had, but lost motivation, or 
they were simply an experiment (that could be useful at some point). 
Just 2 days ago I revived a 5 year old branch and finally completed the 
work.


I didn't pollute the public fpGUI repos because it was personal ideas or 
features I toyed with. They are in various incomplete stages, or simply 
experiments. I don't want others to see such work until my ideas have 
matured.


On the flip side, in the past I have seen newsgroup posts where somebody 
has similar ideas to one or two of my incomplete branches. In such cases 
I speak to that person and if interested, I publish such a branch to 
begin collaboration.


Regards,
  Graeme

--
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/

My public PGP key:  http://tinyurl.com/graeme-pgp
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-23 Thread Graeme Geldenhuys

On 2017-05-23 21:05, Florian Klämpfl wrote:

FPC is a compiler and not an OS kernel, so would like to see such
blog posts from big compilers: e.g. gcc, clang


OS Kernel, Compiler, any other project - what's the difference. Git 
development itself is managed in a very "distributed" way with multiple 
branches, maintenance releases etc. And more impressively, all branch 
merging is done by a single person. Their processes are quite well 
documented, and if you see how active the Git development is, it goes a 
long way proving that even a very active project can be managed by very 
few (one in this case).


My point is, you can learn from them to see how a project can be managed 
without adding extra work-load to one person or a small team (like FPC).


Regards,
  Graeme

--
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/

My public PGP key:  http://tinyurl.com/graeme-pgp
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-23 Thread Karoly Balogh (Charlie/SGR)
Hi,

On Tue, 23 May 2017, Florian Kl?mpfl wrote:

> > so they just use git-svn.
>
> This is what I do as well for several things, but I still think,
> subversion is the better solution as the canonical FPC repository.

*shrug*

As I said, I'm fine with it anyway, whatever. But I can see the practical
reasons for Git, and see the reason why people would want it. And I came a
*lng* way to admit that. In late-2009 early-2010 I sounded more
anti-Git than Marco. :)

Charlie
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-23 Thread Florian Klämpfl
Am 23.05.2017 um 22:36 schrieb Karoly Balogh (Charlie/SGR):
> so they just use
> git-svn.

This is what I do as well for several things, but I still think, subversion is 
the better solution
as the canonical FPC repository.
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-23 Thread Karoly Balogh (Charlie/SGR)
Hi,

On Tue, 23 May 2017, Marco van de Voort wrote:

> Trust is that people are not deliberately doing things. For accidental
> things there are tools (except GIT, apparently)

Err...? :) The only way to can fuck up a remote Git repository is by force
pushing, if you have write access already. But you can disable force
pushing even for people with write access. (Which is advisable.)

> I was not asking for ideally. I was asking very specifically how a GIT in a
> FPC team group would work.

See my other mail.

> > At work, I don't even push against master, but I do a pull request
> > against my own repository, and ask one of my senior colleagues to
> > review... I don't know about you, but to me this sounds a lot more
> > like teamwork, than going around beating up people "for wrongdoing"
> > with a cluestick.
>
> Then you don't understand what I mean. In the job you go see the person,
> work something out, and problem sorted in a few minutes. The odd
> impossible person is usually swiftly dealt with.

Honestly, I can't even... You sound like the Expert Beginner Twitter
account. No personal offense intended, but you just do.

> In distributed, volunteer driven, projects, people are away/nonresponsive for
> extended periods of time, working hours (and days) don't match. Also working
> this out via mail is much less productive.

So it's much more productive to just give everyone commit access to the
main repo, and let it being polluted with random branches? Or anyone who
wants to contribute but not with FPC for years, should keep working on his
working copy (with no ways to commit) and then submit a .diff via Mantis?

(Well, people are smarter than that, fortunately, so they just use
git-svn. Whatever.)

> Sorry to say, but I didn't find anything new or usable in this post. It is
> the standard "think different" nonsense from a very idealist viewpoint,
> little practical details.

Err, see my other mail about a practical example.

> So I now give up this thread (and GIT).

You should try to use it. For once. With an open mind. I know it's hard.

Charlie
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-23 Thread Karoly Balogh (Charlie/SGR)
Hi,

On Tue, 23 May 2017, Florian Kl?mpfl wrote:

> > For those interested, read the many blobs about how the Linux Kernel
> > development is managed.
>
> FPC is a compiler and not an OS kernel, so would like to see such blog
> posts from big compilers: e.g. gcc, clang

I see your point Florian, but at least LLVM seems to have a Git gateway
these days, and they documented how to contribute using Git, while they
can keep their upstream SVN.

http://llvm.org/docs/GettingStarted.html#sending-patches-with-git

And the same with GCC:

https://gcc.gnu.org/wiki/GitMirror

The important fact to see is Git allows people do their own branches
(local branches, of course) and forks much easier/cheaper in a way, which
also makes easier to contribute their changes back to the main project
they originally forked. This part is at least is independent from the
nature of the software developed, and the poIitics involved, I think.

Charlie
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-23 Thread Marco van de Voort
In our previous episode, Karoly Balogh (Charlie/SGR) said:
> > how to avoid that a push of member X doesn't leave a branch in an
> > undesirable state that leaves member Y three choices:
> 
> How to avoid that member X with commit write access doesn't leave a branch
> in SVN in an undesirable state? :) You have to trust people, and choose
> who you give write access to a given branch/repository, really. This
> didn't really change and not an argument against git.

Trust is that people are not deliberately doing things. For accidental
things there are tools (except GIT, apparently)
 
> And well, in Git you don't push, but people who want to contribute, have a
> pull request. Then you can review that, and either apply to your tree or
> reject it. It's important to understand that in git all repositories are
> equal, and that I have a "make-amiga-great-again" branch, doesn't mean
> that you should have it, I could still send a pull request against your
> master branch, or whatever branch. All pull requests are just a set of
> changes, really.

Yeah, blabla, distributed, anarchy, world domination. I though I did mention
I wanted practical info?

> > 1. push anyway and make the mess worse
> > 2. hold the commit/push
> > 3. clean the mess himself.
> 
> Well, ideally 

I was not asking for ideally. I was asking very specifically how a GIT in a
FPC team group would work.

And no, sending 40+ pull requests to all members of core does not count. So
there is one golden repo and that is what I'm talking about.

> easily. It's the responsibility of the maintainer of a given branch to
> accept that pull request or not, or request further changes before its
> accepted.

So tool failure is fixed by throwing manpower at it?

We don't have an approval person now, so a requirement to that would IMHO be
a dealbreaker for GIT.

> And talking about myself - as much as I enjoy just committing my crap to
> trunk, I sometimes would really prefer review. Not because I'm not a
> senior engineer, but especially because of that... Now if I don't want to
> do a branch in SVN which are huge and expensive (Git branches are cheap
> and small), I either have to commit it first anyway to trunk, then ask for
> a review, or send a patch for review first in e-mail, which is quite
> cumbersome. Plus there's absolutely no warranty, that I later commit the
> same patch which was reviewed.

I would like to have lots of extra manpower too, but I rather not spend it
on what in practice would be rubberstamping commits (and delays in 
distribution till something is approved if the reviewers are AFK). 

This is exactly what I wanted to avoid with the primary case posed in this
subthread: how to avoid blocking the central repo for commits (from a
practical viewpoint)
 
> At work, I don't even push against master, but I do a pull request against
> my own repository, and ask one of my senior colleagues to review... I
> don't know about you, but to me this sounds a lot more like teamwork, than
> going around beating up people "for wrongdoing" with a cluestick.

Then you don't understand what I mean. In the job you go see the person,
work something out, and problem sorted in a few minutes. The odd impossible
person is usually swiftly dealt with.

In distributed, volunteer driven, projects, people are away/nonresponsive for
extended periods of time, working hours (and days) don't match. Also working
this out via mail is much less productive.

> Of course in the end it's just like crypto - you need to have a chain of
> trust from the top, a group of trustees who will do the actual merging of
> the pull requests, reviews and then push it upstream/mainline/trunk. If
> one of these maintainers do a bad job, then you need to sort out that
> problem, but that doesn't mean the whole system is broken. It's similar to
> giving commit access to a developer who doesn't deserve it in SVN, really.

I know what an honor-system is. It doesn't protect against mistakes the day
before holiday. Remember the old locking VCSes ?

> Now, how the actual process would look with the FPC team, that's hard to
> define at this point. But the tools are there for it.
> 
> Was this a proper answer, or I was beating around the bush in your views?
> :)

Sorry to say, but I didn't find anything new or usable in this post. It is
the standard "think different" nonsense from a very idealist viewpoint,
little practical details.

So I now give up this thread (and GIT).
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-23 Thread Florian Klämpfl
Am 23.05.2017 um 22:10 schrieb Karoly Balogh (Charlie/SGR):
> 
> 1., Have his own clone of the FPC repository. Create his local webassembly
> branch, and keep happily working on his local copy, then leave it rot
> when he loses motivation, doesn't distract anyone.
> 

... and the code is lost :)
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-23 Thread Karoly Balogh (Charlie/SGR)
Hi,

On Tue, 23 May 2017, Karoly Balogh (Charlie/SGR) wrote:

> > To get get back on track, I'll restate the question I posed in the last
> > message unambigously:
> >
> > how to avoid that a push of member X doesn't leave a branch in an
> > undesirable state that leaves member Y three choices:
>
> How to avoid that member X with commit write access doesn't leave a branch
> in SVN in an undesirable state? :) You have to trust people, and choose
> who you give write access to a given branch/repository, really. This
> didn't really change and not an argument against git.
>
> And well, in Git you don't push, but people who want to contribute, have a
> pull request. Then you can review that, and either apply to your tree or
> reject it. It's important to understand that in git all repositories are
> equal, and that I have a "make-amiga-great-again" branch, doesn't mean
> that you should have it, I could still send a pull request against your
> master branch, or whatever branch. All pull requests are just a set of
> changes, really.

Ok, to put this into practical example: lets say some idiot decides to do
a Webassembly codegenerator for FPC. This idiot starts working on his
working copy, but quickly loses track... So he wants to start committing
his changes. But in SVN, this idiot has to either:

A., create a Webassembly branch and start committing there, polluting the
global SVN repository forever, even if he's demotivated after 5 commits,
and never touches that branch again. (...)

B., keep his changes in his working copy forever, getting in the way of
other changes, and causing endless conflicts with changes coming in from
trunk.

C., keep two working copies, in case he want to work on something
else meanwhile, and want to avoid accidental commits

(D., use git-svn, and create a local only branch  - sic!)

Now, in Git, this idiot can do:

1., Have his own clone of the FPC repository. Create his local webassembly
branch, and keep happily working on his local copy, then leave it rot
when he loses motivation, doesn't distract anyone.

2., If he wants to involve others, he can publish his whole repository as
FPC-Webassembly project, independently from the main repository he forked,
and get others working on it. At this point his repository acts like an
independent fork of the compiler.

3., If his project succeeds (independent from the number of people worked
on his fork), then he can issue a pull request, while asking a review from
seniors on the FPC project. He can still do the changes requested from him
on his own repo, and commit them easily.

4., He can still sync his own repository with ease with the main FPC
project. So he can be sure when he sends his pull request, it will merge
seamlessly against the FPC master. (And this is in fact should be expected
from him.)

From the two above, I would go for the Git option. Because we're already
stuck with the first one in SVN, and it's not good. ;)

The bigger picture is, that I can do the SVN branch, because I had write
access to the SVN. But people without commit access, can't. So this also
makes difficult from people independent from the project work on larger
scale changes on their own... Or if they still do (hello NewPascal!),
because git-svn allows them, it's difficult for us to integrate their
changes back...

Charlie
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-23 Thread Florian Klämpfl
Am 23.05.2017 um 21:56 schrieb Graeme Geldenhuys:
> On 2017-05-23 20:33, Karoly Balogh (Charlie/SGR) wrote:
>> Now, how the actual process would look with the FPC team, that's hard to
>> define at this point. But the tools are there for it.
> 
> Exactly what I was getting at.
> 
> 
>> Was this a proper answer, or I was beating around the bush in your views?
>> :)
> 
> Finally somebody that understands distributed version control, and how Git 
> could be used. You gave a
> very good answer indeed. Too many people (and companies) are so stead fast in 
> the ways of a
> client/server version control system - like SubVersion. They then wrongly (or 
> not ideal) force those
> ideas onto Git usage. Hence the reason I said it takes a bit or "rethinking 
> the problem", and in the
> end everything becomes quite clear.
> 
> For those interested, read the many blobs about how the Linux Kernel 
> development is managed. 

FPC is a compiler and not an OS kernel, so would like to see such blog posts 
from big compilers:
e.g. gcc, clang
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-23 Thread Karoly Balogh (Charlie/SGR)
Hi,

On Tue, 23 May 2017, Marco van de Voort wrote:

> The problem is that if problems get practical the advocatists suddenly step
> back and aren't really able to do more than regurgitate either the standard
> beginner "wisdoms" or "you shouldn't want this" or "this is the new improved
> ways" or similar platitudes.
>
> To get get back on track, I'll restate the question I posed in the last
> message unambigously:
>
> how to avoid that a push of member X doesn't leave a branch in an
> undesirable state that leaves member Y three choices:

How to avoid that member X with commit write access doesn't leave a branch
in SVN in an undesirable state? :) You have to trust people, and choose
who you give write access to a given branch/repository, really. This
didn't really change and not an argument against git.

And well, in Git you don't push, but people who want to contribute, have a
pull request. Then you can review that, and either apply to your tree or
reject it. It's important to understand that in git all repositories are
equal, and that I have a "make-amiga-great-again" branch, doesn't mean
that you should have it, I could still send a pull request against your
master branch, or whatever branch. All pull requests are just a set of
changes, really.

> 1. push anyway and make the mess worse
> 2. hold the commit/push
> 3. clean the mess himself.

Well, ideally in distributed teams, people don't push, but have a pull
request. Basically as crazy as it sounds, everyone forks the project all
the time, but then you have a set of tools to reintegrate all those forks
easily. It's the responsibility of the maintainer of a given branch to
accept that pull request or not, or request further changes before its
accepted.

> In your own repository that is no problem, and even in companies this only
> takes only a few LART/cluebat applications to fix. However in distributed
> teams this is a pain.

No, it isn't. This is the primary problem git solves, actually, by making
it possible for everyone having their own sandbox to play with, and you
have a review filter before accepting changes. You can even sign off
changes by a maintainer, who reviews the code. All those messy branches
remain local if they're not approved, on the person's computer who messed
it up, they don't have to go global/upstream...

And talking about myself - as much as I enjoy just committing my crap to
trunk, I sometimes would really prefer review. Not because I'm not a
senior engineer, but especially because of that... Now if I don't want to
do a branch in SVN which are huge and expensive (Git branches are cheap
and small), I either have to commit it first anyway to trunk, then ask for
a review, or send a patch for review first in e-mail, which is quite
cumbersome. Plus there's absolutely no warranty, that I later commit the
same patch which was reviewed.

At work, I don't even push against master, but I do a pull request against
my own repository, and ask one of my senior colleagues to review... I
don't know about you, but to me this sounds a lot more like teamwork, than
going around beating up people "for wrongdoing" with a cluestick.

Of course in the end it's just like crypto - you need to have a chain of
trust from the top, a group of trustees who will do the actual merging of
the pull requests, reviews and then push it upstream/mainline/trunk. If
one of these maintainers do a bad job, then you need to sort out that
problem, but that doesn't mean the whole system is broken. It's similar to
giving commit access to a developer who doesn't deserve it in SVN, really.

Now, how the actual process would look with the FPC team, that's hard to
define at this point. But the tools are there for it.

Was this a proper answer, or I was beating around the bush in your views?
:)

Grmbhl,
--
Charlie
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-23 Thread Marco van de Voort
In our previous episode, Karoly Balogh (Charlie/SGR) said:
> > Git just doesn't do KISS.
> 
> You need an SVN server to start working with SVN. With Git, you go to a
> directory, do "git init" and start committing. Everything is local. Not
> sure how that's not KISS. (You can add a remote later, and then push to
> it, with the full history intact. This remote can even be an SVN repo.)

The previous discussions were about team use of GIT, to be specific, FPC
core repo.

The problem is that if problems get practical the advocatists suddenly step
back and aren't really able to do more than regurgitate either the standard
beginner "wisdoms" or "you shouldn't want this" or "this is the new improved
ways" or similar platitudes.

To get get back on track, I'll restate the question I posed in the last
message unambigously:

how to avoid that a push of member X doesn't leave a branch in an
undesirable state that leaves member Y three choices:

1. push anyway and make the mess worse
2. hold the commit/push
3. clean the mess himself.

In your own repository that is no problem, and even in companies this only
takes only a few LART/cluebat applications to fix. However in distributed
teams this is a pain.



___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-23 Thread Florian Klämpfl
Am 23.05.2017 um 12:42 schrieb Graeme Geldenhuys:
> On 2017-05-23 11:31, Tomas Hajny wrote:
>> the other, but let me remind you, that it isn't just about Florian. During
>> the previous discussions on this evergreen topic, Florian, Marco, Jonas
>> (if I remember correctly) and others raised quite a few specific questions
>> on how to accomplish particular tasks commonly used in the FPC project. I
>> may have missed something, but I haven't noticed a particular proposal
>> from you or anyone else describing in detail how to cover those needs
> 
> To be honest, I can't actually remember seeing any such proposal (asking for 
> advice or help) in the
> FPC-Users mailing list. Maybe it was in a list I'm not subscribed in? 
> Otherwise, I would have
> happily given my advice.

First problem: quote from core:

Am 05.03.2017 um 20:53 schrieb Jonas Maebe:
> On 05/03/17 14:33, Maciej Izak wrote:
>> Mhm. It hapens also for simplified github import for svn
>> (https://help.github.com/articles/about-github-importer/). My
>> proposition is :
>>
>> git svn init -s http://svn.freepascal.org/svn/fpc
>> :repeatloop
>> git svn fetch
>> If %ErrorLevel%==1 (
>> Goto :repeatloop
>> )
>>
>> (this command is for repo with all branches, instead of -s I have used
>> for NewPascal --trunk=trunklink but in theory -s should work...)
>
> It doesn't abort with errors (except at some point because we created a 
> branch called "avr", deleted
> it, then again created a branch with that name -- but that can be worked 
> around). It simply does not
> imports some revisions, or does not classify them under the right branches.


But actually, as long as llvm and gcc still use svn, svn should fulfill our 
needs as well :)
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-23 Thread Sven Barth via fpc-other
On 23.05.2017 18:00, Karoly Balogh (Charlie/SGR) wrote:
> Also, ever tried to do partial commits in SVN? (Not committing all the
> changes in a single file.) (git add --patch)

To be fair: at least on Windows that is very easy with the help of
TortoiseSVN :)

Regards,
Sven
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-23 Thread Florian Klämpfl
Am 23.05.2017 um 18:00 schrieb Karoly Balogh (Charlie/SGR):
> Hi,
> 
> On Tue, 23 May 2017, Martin Frb wrote:
> 
>> Or maybe they haven't forgotten how nice and simple svn is.
> 
> Erm, I really don't want to be involved in the usual religious war,
> personally I use exclusively Git these days (for personal stuff), but I
> don't mind SVN, CVS, or whatever a project uses I'm working on. But.
> 
>> Git just doesn't do KISS.
> 
> You need an SVN server to start working with SVN.

Every tried:

C:\temp>svnadmin create repos

C:\temp>svn checkout file:///c:/temp/repos wc
Checked out revision 0.

?

> 
> Also, ever tried to do partial commits in SVN? (Not committing all the
> changes in a single file.) (git add --patch)

I do it daily with FPC (using TortoiseSVN though).

___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-23 Thread Karoly Balogh (Charlie/SGR)
Hi,

On Tue, 23 May 2017, Martin Frb wrote:

> Or maybe they haven't forgotten how nice and simple svn is.

Erm, I really don't want to be involved in the usual religious war,
personally I use exclusively Git these days (for personal stuff), but I
don't mind SVN, CVS, or whatever a project uses I'm working on. But.

> Git just doesn't do KISS.

You need an SVN server to start working with SVN. With Git, you go to a
directory, do "git init" and start committing. Everything is local. Not
sure how that's not KISS. (You can add a remote later, and then push to
it, with the full history intact. This remote can even be an SVN repo.)

Also, you retain the full commit history locally, so you don't need access
to the server to get logs, get diffs, etc. Ever tried to work on a project
hosted in a centralized VCS, while on a 10 hour plane flight with no
internet? Or travelling in another country, where your roaming doesn't
work?

Also, ever tried to do partial commits in SVN? (Not committing all the
changes in a single file.) (git add --patch)

Also, ever tried to just make clean build of trunk quickly in SVN then
reapply your local, not committed changes? Or try your local changes
on another branch without committing them? (git stash)

Agreed, Git adds some complexity due to it's distributed nature, and
because you don't have nice monotonously increasing revision numbers. But
seriously, it makes a billion things much simpler and easier in exchange,
especially if one learns to exploit its features for the everyday
workflow. It's a tool to manage your source code, even *before* you commit
your changes. While SVN is still seen and used by many people as some kind
of "incremental source backup". And indeed, it's barely useable for
anything more, if we're honest.

But as I said, I'm fine with $whatever VCS, I'm not forcing anyone. Heck I
still see great software developed in CVS or even without any VCS (that's
quite extreme tho', admitted), because no tool can replace a great
developer. But great developers know how to make their own life easier. ;)

My 2 cents,
--
Charlie
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-23 Thread Martin Frb

On 23/05/2017 16:04, Graeme Geldenhuys wrote:


WTF? Branching and Merging are two key feature of Git. So if the don't 
want merging (or only allow fast-forward merges), I guess they want to 
Rebase everything everybody contributes - yeah the lovely linear 
history of SubVersion because they don't know better.


Or maybe they haven't forgotten how nice and simple svn is.

Git just doesn't do KISS.

---
(I use both git and svn, and both have things that I personally miss on 
the other)


But at least this thread is highly amusing, so thanks for that ;)

___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-23 Thread Graeme Geldenhuys

On 2017-05-23 15:23, Marco van de Voort wrote:

some info is at
http://llvm.org/docs/Proposals/GitHubMove.html#on-managing-revision-numbers-with-git

merging, external repos were some of the other issues.


Good Lord, who wrote that, and when? Clearly someone with a serious lack 
of Git knowlegde - just the thing I described 2 replies ago.


"
However, we propose to mandate making merge commits illegal in our
canonical Git repository.
"

WTF? Branching and Merging are two key feature of Git. So if the don't 
want merging (or only allow fast-forward merges), I guess they want to 
Rebase everything everybody contributes - yeah the lovely linear history 
of SubVersion because they don't know better.



Regards,
  Graeme

--
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/

My public PGP key:  http://tinyurl.com/graeme-pgp
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-23 Thread Graeme Geldenhuys

On 2017-05-23 15:09, Mark Morgan Lloyd wrote:

One question if I may. Subversion has revision numbers like 12345, and
it's comparatively easy to query that and build it into a piece of
software's version information.


And the same is true for Git. By design, distributed version control 
systems (any of them, not just Git), can't rely on a sequential number. 
The word "distributed" should say it all. True parallel development; no 
single "server" instance etc.


Saying that, git includes a command 'git describe' which does what you 
need. I find its result also way more useful and informative that a 
single sequential revision number - which only has a mean to a 
developer. Lets use an example:


  [reportdesigner (reportdesigner)]$ git describe
  v1.4.1-787-g45f932c1

What does that output tell me:
  * Whatever code I'm working on is follow on from the "v1.4.1"
release.
  * This line of [development] history has seen "787" commits
since the v1.4.1 release.
  * The "g" prefix indications that the Git revision control
system was used.
  * The "45f932c1" is the SHA1 value of the last commit, that
uniquely identifies where we are in the whole history of
the project. Irrespective of having 1 or a 1000 branches.

Now as with anything Git, everything is configurable. So the 
git-describe commands has many optional parameters too. So you can 
change the output to suite your project's needs. Things like should Tag 
names be used in the git-describe output, or only Annotated Tags, or 
only Branch names. Do we want the commit count, do we want the "g" 
prefix, how long SHA1 value do we want etc etc.


Many applications incorporate such output in there version information. 
See attached screenshot of one such example. I've seen plenty of others too.



What does a SubVersion revision r20453 tell you?

  * Which branch are you on?
  * Which release is this work based on?
  * Is it a "hotfix" or new feature.
  * Is it maybe a tag? Though Subversion doesn't really have a
concept of tags, as they are just branches in a bad disguise.

No, it only tells you that you are using commit number 20453.

So now the next thing you are probably going to tell me is that yeah but 
I can use the revision number in Windows's version numbering as a 
Revision or Build value. Yes and No. Only if your repository has less 
than 65535 commits - the maximum a WORD type supports. So what happens 
if you have more commits that that? Many large projects do.


> It's also trivial for a developer to
> look at the revision that he's currently working with, to say whether
> it's older or newer than revision 12345,

As I just explained. The git-describe output tells you that and more.


> and to get a log of what the
> relative changes were by /only/ knowing the revision number.

Nothing new, Git does that too. Git (no surprise) even goes further and 
also tells you the Parent(s) commit that got you there, the 
Child/Children commits following on, what branch it is on and what Tags 
this commit follows.



Regards,
  Graeme

--
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/

My public PGP key:  http://tinyurl.com/graeme-pgp
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-23 Thread Marco van de Voort
In our previous episode, Mark Morgan Lloyd said:
> Now I don't deny for a moment that Git has its advantages for 
> distributed working. But am I correct in my understanding that it has 
> nothing that maps directly onto the monotonic revision list of 
> traditional VCSs including Subversion?

Nope. There is only some hash, and various hacks to emulate with post commit
hooks, which is not at all the same in behaviour.

some info is at
http://llvm.org/docs/Proposals/GitHubMove.html#on-managing-revision-numbers-with-git

merging, external repos were some of the other issues. (Potentially) solved 
issues since
the previous discussion were repo dictated configuration (for linefeeds),
and the ability to avoid certain branches to have multiple ends (thus
leaving the next committer with the unenviable choice to wait or potentially
make the situation even more complex).

All from memory of ourse.
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-23 Thread Mark Morgan Lloyd

On 23/05/17 14:00, Marco van de Voort wrote:

In our previous episode, Graeme Geldenhuys said:> As with any new applications or technologies, 
there is always some > learning curve (big or small). There are tons of bad habits ingrained in 
> SVN users. Those do not translate well to Git (thank goodness). Git > works fundamentally 
different to SVN (for the better). So you need a > change in mindset - some refuse, hence they 
struggle with Git. And then > wrongly blame Git for it. I fear this is most likely what happened 
with > Florian.
That is your very colored view about it, that automatically declaresnon-gits 
stupid.
However in the last discussion we showed you various faqs (like from LLVMand 
FreeBSD) that mirrored the FPC core teams.


One question if I may. Subversion has revision numbers like 12345, and 
it's comparatively easy to query that and build it into a piece of 
software's version information. It's also trivial for a developer to 
look at the revision that he's currently working with, to say whether 
it's older or newer than revision 12345, and to get a log of what the 
relative changes were by /only/ knowing the revision number.


Now I don't deny for a moment that Git has its advantages for 
distributed working. But am I correct in my understanding that it has 
nothing that maps directly onto the monotonic revision list of 
traditional VCSs including Subversion?


--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-23 Thread DaWorm
emacs!  vi!

Let's call the whole thing off and use EDLIN.
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] Git & SVN

2017-05-23 Thread Marco van de Voort
In our previous episode, Graeme Geldenhuys said:
> As with any new applications or technologies, there is always some 
> learning curve (big or small). There are tons of bad habits ingrained in 
> SVN users. Those do not translate well to Git (thank goodness). Git 
> works fundamentally different to SVN (for the better). So you need a 
> change in mindset - some refuse, hence they struggle with Git. And then 
> wrongly blame Git for it. I fear this is most likely what happened with 
> Florian.

That is your very colored view about it, that automatically declares
non-gits stupid.

However in the last discussion we showed you various faqs (like from LLVM
and FreeBSD) that mirrored the FPC core teams.

___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other