Hi Simon,
There's indeed no such reason. In fact if somebody has some experience with Git (and thereby knows how to set one's Git identity and knows what merge commits are and how to avoid them), then I would absolutely encourage using Git instead of SVN.
Best,
Toby
--
You received this message because you are subscribed to the Google Groups "pencil-code-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pencil-code-dis...@googlegroups.com.
To post to this group, send email to pencil-co...@googlegroups.com.
Visit this group at http://groups.google.com/group/pencil-code-discuss.
For more options, visit https://groups.google.com/d/optout.
Hi Philippe,
> is there some additional difference in "using git" other than that:
>
> svn update
> svn commit ...
> svn commit ...
>
> translates to:
>
> git pull
> git commit ...
> git commit ...
> git commit ...
> git push
That is basically it, but if people are not familiar with the things I mentioned in my reply to Simon, then hell won't break loose, but it will result in a unnecessarily messy commit history.
> PS: I have quickly checked with the github support that our github
> account profiles list now also our past activity:
> https://github.com/PABourdin
> Before, that was only the case for some of us, as I have seen.
This nicely illustrates my point. There should be no need for GitHub support to get involved. For anybody who correctly configures their Git identity and associates the corresponding email address with their GitHub, all the pass commits will automatically be attributed to that person.
Best,
Toby
> > This nicely illustrates my point. There should be no need for GitHub
> > support to get involved.
>
> No, sorry, that was actually a "bug" on GitHub only related to our
> account statistic. I had configured everything as suggested, and I'm
> familiar with git due to other software projects. :-) The github guy
> said he just needed to delete the account's cache data, then it worked.
Oh I see, thanks a lot for sorting this out then! I misinterpreted what you were saying.
As for the rest of your email, I agree one hundred percent.
Toby
Please let me know, if I'm wrong, otherwise I will include that in the git instructions to be written and put onto the website...
Best greetings,
Philippe.
> So it is specific to the repository that
> obviously got messed up by the github SVN bridge.
Messed up how? Were you using Git and SVN on the same repository?
I'll respond to the rest of your email later.
Toby
> I do believe there's overwhelming evidence that Git works perfectly
> fine for projects that are much much bigger and have many more users
There is definitely something more to consider. For example, on GIT it
is absolutely not recommended to have the master as development branch.
GIT may even change the history of a file.
GIT does not know about
"revisions". This is all in clear opposition to our Pencil Code habits.
Yes, okay, but actually the correct behaviour should be then to share your wisdom with all other people.
Yes, okay, but actually the correct behaviour should be then to share your wisdom with all other people.
This "wisdom" is shared all over the internet. But sure, it doesn't hurt to replicate this on the wiki.
Is it not possible to list the steps necessary to reproduce the problem?
> > Changing the history of a file never occurs unless you do a so-called
> > forced push (git push --force). I mentioned in a previous e-mail that I was
> > worried about this and therefore asked GitHub to disable forced pushes on
> > all repositories under http://github.com/pencil-code, which they did.
>
> Still, this (my design) renders impossible the concept of a revision
> number (similar to SVN) for GIT, no matter if we deny force-pushes.
I don't understand. How can GitHub's SVN bridge work at all if what you say is true?
And I assume you're committing this to github.com/pencil-code/pencil-code.git?
By the way, I'm in no way denying the problem exists. I would just like to reproduce it.
How do I change the past of origin/master if forced pushes to origin are disabled?
How do I change the past of origin/master if forced pushes to origin are disabled?
> I'm not anyone *is* doing that.
> I was saying that "by design" GIT allows for it and that this is in clear contradiction to SVN principles.
> Thereore, "by design" GIT does not allow (SVN-like) revision numbers.
I'm not going to dignify this with a response.
> But that is not even the most important point here. Even though it gives serious additional troubles, because the GitHub SVN bridge would not expand "$Id$" strings for us, which (currently) destroys the reproducability of Pencil Code runs and requires us to put another (SVN-like) versioning tool on top of GIT, which I find silly, because it is YARIOTW (yet another re-invention of the wheel).
That would be very silly indeed. Why do Git hashes not provide the same reproducibility as SVN revision numbers.
> Why do Git hashes not provide the same
> reproducibility as SVN revision numbers.
First, because these not GIT commit hashes, but only the BLOB hash, which gives us NO WAY of guessing the revision number or the commit hash (in order to re-checkout that specific version).
Second, because this would work only for the GIT clients, not for the SVN clients (which most if the Pencil Code team want to use).
Don't get me wrong, I have nothing against GIT, I used it for ages in my software company (as well as rcs, cvs, and svn).
I just see GIT does not work our with the Pencil Code habits that we currently have. And we need a solution (back to SVN) or a clear decision for discontinuing SVN and forcing everyone to use GIT (then still lacking a proper revision number system).
$ git co <hash>
You're losing me again.
Obviously there's got to be a way to print out the Git commit hash at runtime.
Again, because the SVN bridge exists, there also has to be a way of uniquely mapping commit hashes to revision numbers of origin/master.
Don't get me wrong, I have nothing against GIT, I used it for ages in my software company (as well as rcs, cvs, and svn).That's not the impression I'm getting.
You're basically implying that the Git world doesn't care about reproducibility.
So you've completely written off the possibility of a functioning SVN bridge? I see no principle reason for why the SVN bridge couldn't work for us, and I still think that if it'd be possible to reproduce the error messages you guys are getting then there's very reasonable hope that it will be fixed.
There's also the possibility of effectively mimicking the SVN workflow in Git, see https://debconf.org/wiki/GitMigration#Getting_you_started_quickly. The whole document is worth reading by the way.
But yes, reverting back to SVN hosting is of course also an option. But if that's what's gonna happen, then it should happen for the right reasons. A broken SVN bridge is in my opinion a valid reasos. All the others I've heard so far are not.
Obviously there's got to be a way to print out the Git commit hash at runtime.
There is no "GIT commit hash" that you can inject into your source code, like the SVN-keyword "$Id$" did.
The only thing you can inject into your source code is the BLOB hash.
Furthermore: the GitHub people are not willing to extend thir SVN bridge to support the SVN-keyword "$Id$" with their faked revision numbers...
So you've completely written off the possibility of a functioning SVN bridge? I see no principle reason for why the SVN bridge couldn't work for us, and I still think that if it'd be possible to reproduce the error messages you guys are getting then there's very reasonable hope that it will be fixed.
Good luck, then. I don't know how I should reproduce something that happens occasionally for no obvious reason.
There's also the possibility of effectively mimicking the SVN workflow in Git, see https://debconf.org/wiki/GitMigration#Getting_you_started_quickly. The whole document is worth reading by the way.
Well, that does not help me in any way, sorry.
But yes, reverting back to SVN hosting is of course also an option. But if that's what's gonna happen, then it should happen for the right reasons. A broken SVN bridge is in my opinion a valid reasos. All the others I've heard so far are not.
One more reason are (meaningful) revision numbers that are injectable to the source code.
And one more: SVN is simpler to use, I never understood, why a "git push" is needed by default.
One more: if you prefer to use GIT, you can actually do that (without loss of any SVN-functionality) on top of a SVN working copy, so that you can commit even offline, like in GIT.
Again: for me the future path is irrelevant, I can live well with both, SVN or GIT. Just I can't live with the combination of: a) not changing our Pencil Code habits, b) a broken GitHub SVN bridge, c) mixing of SVN and GIT clients, d) re-inventing existing SVN-wheels that we need on top of GIT. ;-)
Also, one of the major advantages of GitHub is that it makes it so easy for people that don't have write access to improve the code by sending in changes via pull requests. I strongly believe that the Pencil Code will also benefit from this functionality...
This conversation is over.