WWW: Updated contribute page with info about git.
SVN revision: 84375
This commit is contained in:
parent
3d48e5dfb2
commit
eabe5a4380
|
@ -12,117 +12,74 @@
|
|||
<h2>Source</h2>
|
||||
|
||||
<p>
|
||||
All our source code is available from our SVN source repository at
|
||||
all times. If we actually are moving seriously on a piece of code,
|
||||
All our source code is available from our GIT source repositories. It used
|
||||
to be SVN, and we are now in the process of switching between the two. If a
|
||||
repository is available by GIT, use that one.
|
||||
If we actually are moving seriously on a piece of code,
|
||||
it will make its way to our <?php a("download", "download");?> page.
|
||||
For something supported, look there. If you want to help with
|
||||
development or are just hyper-curious and want to see what's in our
|
||||
workshop, then you will want to <a
|
||||
href=http://trac.enlightenment.org/e/browser/trunk>browse through
|
||||
our SVN repository</a>. Alternatively, you will want to check it out.
|
||||
href=http://git.enlightenment.org>browse through
|
||||
our GIT repositories</a>. Alternatively, you might want to clone it.
|
||||
</p>
|
||||
<p>
|
||||
Our SVN repository is not small. There's currently over 1.5 million
|
||||
lines of C source code alone in there. Along with some other
|
||||
languages. A full local checkout will use about 1.2 GB of local disk
|
||||
Our list of GIT repositories consists of many little projects.
|
||||
Our core projects, Enlightement, EFL, and Elementary, are prefixed with
|
||||
"core/", the legacy (before merge) EFL components are prefixed with "legacy/",
|
||||
and pet dev projects are prefixed with "devs/DEV-NAME/".
|
||||
Our repositories are not small and carry years of development.
|
||||
There are currently over 1.5 million lines of C source code alone in them.
|
||||
Along with some other languages.
|
||||
To clone the repositories you will have to get GIT
|
||||
A full local checkout will use about 1.2 GB of local disk
|
||||
space. To check it out you will need <a
|
||||
href=http://subversion.tigris.org/>subversion</a>. Most Linux
|
||||
distributions come with packages for them. For other operating
|
||||
href=http://git-scm.com/>GIT</a>. Most Linux
|
||||
distributions come with packages for it; for other operating
|
||||
systems your luck may vary. There is <a
|
||||
href=http://tortoisesvn.tigris.org/>Tortoise SVN</a> for windows,
|
||||
and OSX users can just use regular subversion like their Linux
|
||||
counterparts. To check out all of SVN just use:
|
||||
href=http://msysgit.github.com/>msysgit</a> for windows,
|
||||
and OSX users can just use regular GIT like their Linux
|
||||
counterparts. To clone a git repository you need to do (for example for the EFL repo):
|
||||
</p>
|
||||
<p><pre><code>svn co http://svn.enlightenment.org/svn/e
|
||||
<p><pre><code>git clone git://git.enlightenment.org/core/efl.git
|
||||
</code></pre></p>
|
||||
<p>
|
||||
<em>(You can also use https instead of http if you want to use SSL
|
||||
encryption)</em>
|
||||
</p>
|
||||
<p>
|
||||
You can also use git if you want to maintain lots of
|
||||
local branches, code and features and generate patches and so on. You
|
||||
can either use git-svn:
|
||||
</p>
|
||||
<p><pre><code>git svn clone http://svn.enlightenment.org/svn/e
|
||||
</code></pre></p>
|
||||
<p>
|
||||
If you are not interested in keeping the history (or only really need the
|
||||
last couple commits as individual commits you can use the -r option git-svn
|
||||
provides. Additionally you most likely don't need stuff in the directories
|
||||
BROKEN/ or OLD/. These can be ignored with the option --ignore-paths so the
|
||||
command to check out only the latest revision would be:
|
||||
</p>
|
||||
<p><pre><code>git svn clone --ignore-paths="BROKEN|OLD" -r HEAD http://svn.enlightenment.org/svn/e
|
||||
</code></pre></p>
|
||||
<p>
|
||||
Or alternatively use the French git mirror from <a href=http://git.enlightenment.fr/>here</a>. This is preferred as native git is faster and better than git-svn.
|
||||
Full links are easily guessable (just the repo name), but are also available
|
||||
from the <a href=http://git.enlightenment.org>online repository browser</a> linked to above.
|
||||
<em>(It's recommended you use the git protocol, but you can use the http
|
||||
protocol if you prefer; developers should use ssh)</em>
|
||||
</p>
|
||||
<p>
|
||||
To update the code in your tree (pull in changes from our master
|
||||
tree), just use:
|
||||
</p>
|
||||
<p><pre><code>svn update
|
||||
</code></pre></p>
|
||||
<p>
|
||||
Or for git-svn:
|
||||
</p>
|
||||
<p><pre><code>git svn rebase
|
||||
</code></pre></p>
|
||||
<p>
|
||||
Or for git:
|
||||
tree), just run:
|
||||
</p>
|
||||
<p><pre><code>git pull --rebase
|
||||
</code></pre></p>
|
||||
<p>
|
||||
If you have made changes you'd like to share, you can generate a patch
|
||||
file from your changes with:
|
||||
In order to generate patches
|
||||
</p>
|
||||
<p><pre><code>svn diff -x -up
|
||||
<p><pre><code>git format-patch LAST-COMMIT-BEFORE-YOURS # read the manual
|
||||
</code></pre></p>
|
||||
<p>
|
||||
Or with git:
|
||||
</p>
|
||||
<p><pre><code>git diff # Or better yet, git format-patch - read the manual.
|
||||
</code></pre></p>
|
||||
<p>
|
||||
Please read the appropriate manuals for your chosen revisioning
|
||||
system so you know how to use it effectively.
|
||||
Please read more about git so you'll be able to unleash it's full power.
|
||||
We use phabricator for patch reviews, ticket management, wiki and etc. This
|
||||
means we use "arcanist" for patch submissions. More info is available
|
||||
at the relevant <a href=https://phab.enlightenment.org/w/arcanist/>phabricator wiki page</a>.
|
||||
</p>
|
||||
<hr>
|
||||
<p>
|
||||
Once you become an enlightenment developer, you will possibly get SVN
|
||||
commit access. This means you can not just fetch the code and generate
|
||||
patches, but you can also directly put changes into SVN (commit them).
|
||||
All changes are watched and broadcast on our
|
||||
<a href=https://lists.sourceforge.net/lists/listinfo/enlightenment-svn>
|
||||
SVN Commits List</a> as they happen. To gain a copy of the tree as a
|
||||
developer with commit access you will want to check out the tree with
|
||||
one of the following commands (depending on if you want to use SVN
|
||||
directly, or SVN via git), where <b>USER</b> is your assigned username:
|
||||
</p>
|
||||
<p><pre><code>svn co svn+ssh://USER@svn.enlightenment.org/var/svn/e
|
||||
</code></pre></p>
|
||||
<p><pre><code>git svn clone svn+ssh://USER@svn.enlightenment.org/var/svn/e/trunk/evas
|
||||
</code></pre></p>
|
||||
<p>
|
||||
If you don't care about ancient revisions you can use the -r option for
|
||||
git-svn here as well as it does not prevent you from being able to commit.
|
||||
</p>
|
||||
<p>
|
||||
Our SVN tree is divided up and categorized. The <b>trunk</b>
|
||||
directory is where all the main development happens. Inside this
|
||||
directory most maintained source lives in the base. We divided off
|
||||
bindings for other languages off into the <b>BINDINGS</b> directory.
|
||||
The <b>E-MODULES-EXTRA</b> contains a whole bunch of modules for
|
||||
enlightenment that may or may not work - try at your own risk.
|
||||
<b>PROTO</b> contains prototype applications.
|
||||
We could go on telling you about the tree, but it's best to
|
||||
just look around and see. Just keep in mind that this tree is our
|
||||
"workshop" and parts of it may be in better condition than others and
|
||||
may or may not be usable. If you look here it is assumed you have a
|
||||
good technical grasp on things and can work out what is and isn't
|
||||
relevant or being worked on or going to be released any time soon.
|
||||
Once you become an enlightenment developer, you will possibly get commit
|
||||
access. This means you'll be able to push commits into the branches, and
|
||||
create your own development branches. All changes are broadcast to our
|
||||
<a href=https://lists.sourceforge.net/lists/listinfo/enlightenment-git>
|
||||
GIT Commits Mailing List</a> as they happen.
|
||||
In order to give yourself the ability to do all of these, i.e use your commit
|
||||
access, you'll have to modify your git remote. You do that by running:
|
||||
<p><pre><code>git remote set-url git+ssh://git@git.enlightenment.org/core/efl.git</code></pre></p>
|
||||
If by some crazy turn of events we gave you access without you having a clone
|
||||
in the first place, or alternatively you are doing a new clone for whatever
|
||||
reason, you can just clone the git+ssh path directly.
|
||||
<em>Important: Do not change the "git" username at the beginning of the command, that's correct.</em>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
|
Loading…
Reference in New Issue