r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[!REBOL3 Source Control] How to manage build process

Carl
29-Oct-2010
[176x3]
Checklist created: Git Move -- steps for A110 git-based release
Andreas, feel free to update checklist with any additional things 
that you want to add.
Oldes, mostly. There was something he mentioned to me earlier.
Andreas
29-Oct-2010
[179]
To clone the current repository:
$ git clone git://github.com/rebolsource/r3-hostkit.git
Carl
29-Oct-2010
[180]
Ok, so that's like a checkout?
Fork
29-Oct-2010
[181]
http://eagain.net/articles/git-for-computer-scientists/
Andreas
29-Oct-2010
[182]
Yes, that's somewhat like a checkout.
Carl
29-Oct-2010
[183x2]
Worked. Got it. Nice.
git move checklist updated
Fork
29-Oct-2010
[185]
The general model is that if you plan on making changes to the codebase, 
you usually would "fork" (lowercase) the project on the GitHub site. 
 It is not typical for people to give write access to others on their 
repository.  So that URL ( git://github.com/rebolsource/r3-hostkit.git 
) is read-only.
Andreas
29-Oct-2010
[186x5]
Carl was referring to something else, I reserved the "rebol" username 
yesterday.
Carl, to "overwrite" your local stuff with the new sources, just 
remove everything but the .git/ directory.
Then copy over your changed sources and do a "git add -u .".
A "git diff --cache" will then show you the changes compared to the 
last commit.
Use "git commit" to commit those changes.
Fork
29-Oct-2010
[191]
When there are various tracks of development on forked repositories 
at GitHub, you can see the state of their convergence (or divergence) 
with the network graph visualizer: http://github.com/blog/39-say-hello-to-the-network-graph-visualizer
Andreas
29-Oct-2010
[192]
Gotta run now, will be back in 30 minutes.
Fork
29-Oct-2010
[193x2]
But you do not get that if you just clone someone else's repository 
in a read-only fashion... i.e. with the clone command " git clone 
git://github.com/rebolsource/r3-hostkit.git ".  It's easy enough 
to fix later, but you can do it up front by starting with a fork 
if you know you are planning on making changes and sending them back 
to the project.
A nice feature worth noting is that GitHub automatically makes .ZIP/.tar 
for you (note the downloads button).  Available at links like http://github.com/rebolsource/r3-hostkit/zipball/master
BrianH
29-Oct-2010
[195x2]
Gabriele, it is obvious that both Git and Hg have their strengths 
and weaknesses related to each other, and the question is whether 
the tool plays to the strengths you need. One of Git's strengths 
is popularity, which has had a side effect of prompting the third-party 
development of addon tools that in many cases make up for its (not 
insignificant) weaknesses. I was not dissing Git when I said that 
its advantages was popularity - that is a considerable strength, 
not to be ignored. Things become popular for occasionally on-topic 
reasons, and it has real benefits no matter what the reason. Fortunately 
we have a good tool (REBOL) that we can use to work around Git's 
weaknesses.
A word of advice: On Windows, you might not want to use the Tortoise 
extensions. Tortoise* slows down Explorer's file and directory access 
even when you don't have any repositories or relevant file hierarchies. 
If you do a lot of file management you might want to stick to the 
CLI tools.
Fork
29-Oct-2010
[197x2]
Is there any chance to put momentum behind a Rebol Git?  The file 
format is fixed, and documented.  Git clones have been written in 
C#, Java, maybe others I don't know about.  I have bemoaned the lack 
of apples-to-apples comparisons in software methodology... if Rebol 
wanted to prove itself, a Git clone is exactly the kind of thing 
I was thinking of.
It would get people's attention if it were microscopic and yet had 
full functionality.
BrianH
29-Oct-2010
[199]
As we have decided to use Git, such a thing is likely :)
Fork
29-Oct-2010
[200x2]
If it were divided up and made  team effort, it shouldn't take too 
long.
It's an order of magnitude easier to write something that's already 
spec'd and designed where questions have been hammered out than something 
you have to design as you go.
Andreas
29-Oct-2010
[202]
(Please move the general source control discussions to "Source Control" 
for now, and let's keep this on topic for the R3 efforts.)
BrianH
29-Oct-2010
[203]
It was just a reply to Gabriele. My side of the discussion is done 
:)
Fork
29-Oct-2010
[204]
Can the Mezzanine get put in on GitHub also?  Right now the only 
way I know to read the mezzanine is to source a function... and clearly 
whatever comes in the distribution has any commenting taken out...
Carl
29-Oct-2010
[205]
Fork, yes I'll post the full mezz there too.
Andreas
29-Oct-2010
[206]
But one step at a time :)
Carl
29-Oct-2010
[207x2]
Fork: it makes sense as well, because for instance, Brian and I go 
back and forth on revisions related to load, modules, start, etc.
Andreas, thanks for posting the above notes.
Fork
29-Oct-2010
[209]
You will like the ability to have discussions attached to specific 
lines of code.  http://github.com/blog/42-commit-comments
Carl
29-Oct-2010
[210]
So, to be clear, and according to the other notes posted above, when 
I make my changes, they will form a new repository??
BrianH
29-Oct-2010
[211]
You might consider a separate repo for the R2 mezzanines as well. 
We still have 2.7.8 to work on :)
Andreas
29-Oct-2010
[212x3]
Nope, not necessarily.
In git, every repository is self-contained.
You can move objects between repositories by "fetching" and "pushing".
Carl
29-Oct-2010
[215]
B: true
Fork
29-Oct-2010
[216]
You can have the R2 mezzanines be on a branch in the same repository, 
there is presumably some overlap and cases where you want to apply 
commits to both.
Carl
29-Oct-2010
[217]
A: ok...  taking a break to read the git for cs you posted.  Need 
to adjust my thinking coming from the classical RVS/CVS/SVN frame 
of mind.
Andreas
29-Oct-2010
[218]
So you work in your local repository, create commits, and when you 
are ready you push your changes to a remote repository.
BrianH
29-Oct-2010
[219]
Not really, Fork. The mezzanine code has to be ported by hand, for 
various reasons. Small but significant tweaks are necessary. Different 
directories in the same repo would work though.
Andreas
29-Oct-2010
[220x2]
The respective command for that is "git push".
You can work with remote repositories either by directly referring 
to URLs, or by locally associating symbolic names with the URLs (git 
calls those local aliases "remotes").
Fork
29-Oct-2010
[222x2]
Brian: You can have as significant differences on a branch as you 
want, and you can name the branches.  You can peruse the branch heads 
independently, like this: http://github.com/mojombo/god/branches
It's not necessary that branches ever actually be merged together.
BrianH
29-Oct-2010
[224]
The file organization and naming is completely different in a108+ 
now too. They really are separate.
Andreas
29-Oct-2010
[225]
Btw, I strongly recommend doing a:
$ git config --global color.ui auto

Which will instruct git to use ANSI colors in command output to the 
terminal.