[fpc-other] Git & SVN

2017-05-23 Thread Graeme Geldenhuys

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 often use Git to manage SubVersion repositories I don’t have control 
over. For everything else I’ve moved over to Git years ago.




Local working copy issues Florian described would be an issue with this
bridge, or not an issue?


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.


There are also 100’s of different work-flows for when you work with Git 
repositories. I’ve introduced Git into many companies. In every case I 
look at how they work, suggest an already existing work-flow as a 
starting point (*), and then tweak it to their needs. In they end they 
get exactly what they want, and without fail all of my customers said 
they should have made the switch years ago.



* - My all time favourite git work-flow is:
http://nvie.com/posts/a-successful-git-branching-model/

It works very will for small and large teams. Supports big or small
features. Allows for long-term support releases as well as quick
bug-fix releases.


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] [fpc-pascal] FPC Graphics options?

2017-05-23 Thread Graeme Geldenhuys

On 2017-05-23 01:03, Nikolay Nikolov wrote:

Isn't java just a wrapper around C?

No. Java compilers generate code for a virtual machine, called JVM (Java
Virtual Machine). They do not generate code for x86 CPUs or any other

>  ...snip...

Very nice explanation and detailed information.



x87 FPU instructions. Sounds so great, you're going to ask if there are
any disadvantages to this approach? And, of course, there are - since
the program is essentially recompiled every time the user runs it,
starting Java programs take a long time.


Technically correct, but you make it sound much worse than it really is. 
Here Eclipse IDE starts up just as fast as Lazarus IDE. And Eclipse is 
easily 10x or more bigger than Lazarus (when it comes to features). So 
JIT does a pretty damn good job if you ask me.


Also JIT has improved tremendously over the last few years. In speed, 
performance and optimisations. I have read somewhere that now it does a 
[quick] compile to get your application up and running faster, then 
after your app is running it can recompile some classes with even more 
optimisations, and runtime reload those classes used by your 
application. All done auto-magically in the background. ;-)




be a lot slower than a FPC program. I know comparing different IDEs is a
little apples-to-oranges comparison (because they may have different
features and vastly different implementation details), but compare the
speed of e.g. Lazarus to any IDE, written in Java, even the fastest one. :)


Lets just look at the two most popular Java IDEs - Eclipse and Intellij 
IDEA. When they are running I don't experience any speed difference 
comparing them to some native non-Java application of similar size.


It is also worth noting that both Eclipse and Intellij IDEA does a ton 
more than Lazarus IDE. They both do deep code-analysis while you are 
coding, making suggestions on how you can improve your code, can apply 
those improvements with a single click or keyboard shortcut, have 
extremely impressive refactoring functionality that makes Lazarus look 
like Notepad. And the list goes on and on.


Lazarus is good, but it doesn't hold a candle against what Eclipse or 
Entellij IDEA can [and does] do. Yes, yes, I know they have 100's or 
1000's more developers too, and corporate backing. So making a 
comparison between those IDE's and Lazarus is rather insane.




Always measure and try to understand why something is slow. In 99% of
the cases it's not what people initially think.


Indeed. I've learned a lot in the recent discussions, and I'm glad to 
see the FPC team seem to be making some effort in improving the compiler 
optimisation, instead of simply dismissing my work and comments.



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 Tomas Hajny
On Tue, May 23, 2017 11:23, Graeme Geldenhuys wrote:
> On 2017-05-22 23:11, nore...@z505.com wrote:


Hi Graeme,

 .
 .
> 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.
 .
 .
> There are also 100’s of different work-flows for when you work with Git
> repositories. I’ve introduced Git into many companies. In every case I
 .
 .

I won't comment your generic statements praising one tool and condemning
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
(possibly a proposal altering the current practice, but still allowing to
achieve the original goals). This was how we performed the CVS to SVN
transition in the past.

People interested in changing the tools should be those coming with a
particular workable proposal on how to use the tool. You should not expect
that those happily using another tool _and_ performing many more
interactions with the current tool than you (without major issues) would
be keen to invest their time in analyzing all possible workflows, etc., of
a new tool just to find out, if they could achieve the same outcomes with
another tool as well as with the current one. Also, note that while many
things may work well in theory, solutions requiring users to be perfect
(e.g. having high level of discipline to perform certain things in certain
way resulting in the wanted outcomes) will rarely work so well in
reality...

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-23 Thread 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.


I also don't expect somebody with no or very little Git experience to 
give any good advice on such a matter either. I believe most of the FPC 
team don't have any or very little Git experience.


I can add that I have been working closely with Michael van Canneyt for 
the past two years. In the last few months I have introduced Git in his 
workplace too, and his knowledge of Git has improved a lot. So maybe in 
the next round of proposals, Michael will be able to offer some more 
advice too.


So again, if the FPC team ever wants to consider Git, feel free to 
contact me so we can bounce around some ideas.


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, 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


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 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 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 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 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 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 16:17, Martin Frb wrote:

Git just doesn't do KISS.


Git is as complicated as you want it to be.



If you want to use it like SVN, then go right ahead. You will miss out a 
lot though. I always recommend newcomers to start out with the basic 4-5 
commands (same as SVN). Then as your confidence grows, introduce new Git 
functionality.


And contrary to what many may think, it is pretty near impossible to 
f*ck your repository up so that things are unrecoverable. As long as 
something was committed, that something can be recovered, or commands 
can be undone (yes, even deleted branches). Try that with SubVersion!


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, 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 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 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 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 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 Karoly Balogh (Charlie/SGR)
Hi,

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

> Every tried:
>
> C:\temp>svnadmin create repos
>
> C:\temp>svn checkout file:///c:/temp/repos wc
> Checked out revision 0.
>
> ?

No, nice to know this works, thanks. However, then if you try to publish
this repo outside of your computer, it gets a bit hairy. (Nothing
unsolvable, but nothing which I would describe as KISS anyway.)

> > 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).

Yes, TortoiseSVN makes this bearable, this was more or less the only
reason I used a Windows 7 box + Linux VirtualBox combo for development at
the last company which used SVN. :) But it's not the feature of SVN as
such.

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, 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 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. Or even how Git's development itself is managed. 
True distributed workflow models.


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 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, 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 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 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 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 Florian Klämpfl
Am 23.05.2017 um 22:24 schrieb 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

So first problem identified: no git mirror of the full 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 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, 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 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 Graeme Geldenhuys

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.


Git = KISS is this case. ;-)

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: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 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 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 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 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


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.)



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


What happens if your hard drive becomes corrupted and fails, with a 
local git?


This has happened to me so many times, hard drives have failed on me (no 
knock on wood)


But I'm not so familiar with git so wonder what happens. Don't you 
eventually have to start uploading to a server anyway, at some point? As 
you cannot trust a hard drive.

___
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: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] [fpc-pascal] FPC Graphics options?

2017-05-23 Thread noreply

On 2017-05-22 18:53, Graeme Geldenhuys wrote:

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

What about Rust or plain C? Or Digital Mars D?


I hate C with a passion. I'll never code in that ever again.



Pascal and C are actually twin brothers with slightly different 
syntax...


But my biggest hate for C is not C itself but just the one fact that it 
lacks strings.


Without strings, a language is headed for the graveyard, IMO.

Counting pchars in your head is just a waste of brain power..

The C struct is literally the pascal record, and is all based on the 
same Structured Programming work by Dijkstra

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


Re: [fpc-other] [fpc-pascal] FPC Graphics options?

2017-05-23 Thread noreply

On 2017-05-23 01:03, Nikolay Nikolov wrote:

Isn't java just a wrapper around C?
No. Java compilers generate code for a virtual machine, called JVM 
(Java

Virtual Machine). They do not generate code for x86 CPUs or any other
 ...snip...



But the virtual machine is just C code, so it's a wrapper around C, IMO

I could be wrong, but, all it does is end up calling C written VM, 
right?

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


[fpc-other] How do you keep up with FPC discussions?

2017-05-23 Thread noreply
I can't find enough time in the day to read even one single email list 
(fpc-pascal), let alone two, or more..


How in the world do people (you) keep up with reading email lists and 
not waste the entire day?


It seems some of you have super human powers that I don't have, to be 
able to both program, and email, and read email, and cook/work.


I can barely keep up with one email list, and fpc is not even that 
popular of a list compared to others...


Maybe I'm a retard and my brain is slow, but how the f**k do you keep up 
with all these emails and have any time for programming, cooking, 
working, hiking, possibly a relationship with opposite sex?


There is just no time.

I'm positive that some of you are just clever A.I. bots posing as 
humans.. that's where your super powers come from. You're not actually 
humans..


Reason for posting this to fpc-other: obvious.
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] [fpc-pascal] FPC Graphics options?

2017-05-23 Thread noreply

On 2017-05-22 18:39, Graeme Geldenhuys wrote:

On 2017-05-22 22:45, nore...@z505.com wrote:
The amount of nesting and indented procedures inside classes in Java 
is

horrible, IMO.


It's not a Java language issue, but the indent preference of the
developer. Many Java IDE's support multiple coding styles and does
auto-formatting as you type or save. Some coding styles are better
than others, and all of them are configurable.

Regards,
  Graeme


I'm not just talking about 8 space indentation vs 4 space or 2, I mean 
having to put code

{
   {
{
   here

Instead of fpc/oberon/golang:

func {

  code here


or

procedure TSomeObj.Example
begin
  code here


instead of

...
   ...
  ...code here

Just to do basic bloody damn things, Java and C# require ridiculous 
obnoxious nests/indentations.


No talking about 2 vs 8 space indentation choices, although that's 
another issue

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


Re: [fpc-other] [fpc-pascal] FPC Graphics options?

2017-05-23 Thread wkitty42

On 05/23/2017 09:56 PM, nore...@z505.com wrote:
The C struct is literally the pascal record, and is all based on the same 
Structured Programming work by Dijkstra


except that the C struct does not have the array length at position zero and you 
have to process until you hit the first null character... that's the plus for 
pascal strings... you know how long the string is from the start... unless it is 
a unicode string ;)


--
 NOTE: No off-list assistance is given without prior approval.
   *Please keep mailing list traffic on the list unless*
   *a signed and pre-paid contract is in effect with us.*
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] [fpc-pascal] FPC Graphics options?

2017-05-23 Thread wkitty42

On 05/23/2017 09:52 PM, nore...@z505.com wrote:

Just to do basic bloody damn things, Java and C# require ridiculous obnoxious
 nests/indentations. >
No talking about 2 vs 8 space indentation choices, although that's another issue


i'm guessing that you haven't played with python where indention is a major 
aspect of the language ;)


--
 NOTE: No off-list assistance is given without prior approval.
   *Please keep mailing list traffic on the list unless*
   *a signed and pre-paid contract is in effect with us.*
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] [fpc-pascal] FPC Graphics options?

2017-05-23 Thread Ralf Quint
On 5/23/2017 7:19 PM, wkitt...@windstream.net wrote:
> On 05/23/2017 09:56 PM, nore...@z505.com wrote:
>> The C struct is literally the pascal record, and is all based on the
>> same Structured Programming work by Dijkstra
>
> except that the C struct does not have the array length at position
> zero and you have to process until you hit the first null character...
> that's the plus for pascal strings... you know how long the string is
> from the start... unless it is a unicode string ;)
>
Well, the problem is that you can't use those handy Pascal strings that
much anymore these days. Ever since you need to use UTF8 to properly
represent textual context, this all has become one hell of a mess,
pretty leveling the playing field when it comes to handling such strings
with (Free)Pascalor C...

Ralf


---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus

___
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: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