-{maketoc}bitweaver is attempting to complete our ((CVS Migration)) to the [http://git-scm.com/|git] version control system. We have broken our CVS virtual modules in 150+ individual git repositories.
|
+{maketoc}bitweaver completed our ((CVS Migration)) to the [http://git-scm.com/|git] version control system. We have broken our CVS virtual modules in 150+ individual git repositories, all of which are hosted on [http://github.com/bitweaver|GitHub]. |
|
!Gitting Started
|
|
Here are the steps to git up to speed and begin developing bitweaver on git:
|
|
!!1. Get some Git.
|
-There are [http://git-scm.com/download|downloads for all major platforms] however, be aware the anything other than the command line on linux is temperamental.
|
+There are [http://git-scm.com/download|downloads for all major platforms] however, be aware the anything other than the command line on linux is temperamental. Additional notes for using git with windows are being ((git on windows|developed here)). |
|
!!2. Register on [http://github.com]
|
Let us know on ((IRC)) so we can add you as a collaborator. (BW Admins, there is a script to make this process simpler //WILL - PLEASE PUT SCRIPT SOMEPLACE ON MODELA//
|
|
!!3. Clone and Go
|
+Since bitweaver is completely modular, the bitweaver.git clone master repository is simply a collection of submodules for each of the packages. |
+ |
+For standard read-only access, use: |
+{code source=bash}git clone git://github.com/bitweaver/bitweaver.git -b READONLY{/code} |
+If you are a developer and need commit access, use: |
+{code source=bash}git clone git@github.com:bitweaver/bitweaver.git{/code} |
+This will create a 'bitweaver' directory where you are. Follow up with... |
{code source=bash}
|
-git clone git@github.com/bitweaver/bitweaver.git
|
+cd bitweaver |
+git submodule update --init |
+git submodule foreach --recursive git submodule update --init |
+git submodule foreach --recursive git checkout master |
{/code}
|
+That will pull down all of the sub repositories for the directory structure the first clone created. |
+//style and icon sections need to be redirected to the correct subfolders// |
|
+!! Create your own bitweaver distro |
+If you have a custom set of modules, you can create your own master project. Here are the instructions: |
+{code source=bash}mkdir newproject |
+cd newproject |
+git init |
+# add the core set of packages for a minimal bitweaver install |
+for PACKAGE in kernel languages liberty storage themes users util wiki install; do git submodule add git@github.com:bitweaver/$PACKAGE.git; done |
+# initialize all nested submodules (mostly in util) |
+git submodule foreach --recursive git submodule update --init |
+# Create a root level index.php , copy from https://github.com/bitweaver/bitweaver/blob/master/index.php |
+wget https://raw.github.com/bitweaver/bitweaver/master/index.php |
+# setup your own local config package, which typically is included in your master project git repo |
+mkdir config config/kernel/ config/themes config/icons |
+# Create a config bit_setup_inc.php , copy from https://github.com/bitweaver/config/blob/master/bit_setup_inc.php |
+cd config |
+wget https://raw.github.com/bitweaver/config/master/bit_setup_inc.php |
+cd .. |
+git add config index.php |
+git commit -m "initialize super project" -a |
+git submodule add http://github.com/bitweaver/adodb.git config/externals/adodb |
+git submodule foreach --recursive git submodule update --init |
+mkdir temp; chmod 777 temp |
+# add some icons and themes |
+git submodule add git@github.com:bitweaver/theme_bootstrap.git config/themes/bootstrap |
+{/code} |
|
+!Creating a new Repository |
+Contact a bitweaver admin to [http://help.github.com/creating-a-repo/|create a new repo on github] for you. |
|
!Repository Locations
|
|
!!Github
|
[http://github.com/bitweaver/]
|
-
|
+We are going to attempt to keep our code on github. There are is one major problem with Github currently - [http://support.github.com/discussions/post-receive-issues/106-cia-hook-has-no-project-options-fear|the lack of decent IRC notification]. |
|
!!bitweaver.org
|
+We have a backup plan if github does not work out. We have our own install running gitosis, which was set up by [/nickpalmer] |
git://git.bitweaver.org/
|
-Contact an admin via ((IRC)) about getting a public key added.
|
+Contact an admin via ((IRC)) about getting a public key added. If github continues to suck, we will revert to bitweaver.org which is running gitosis, and we can mirror push'es to github on an update hook. |
|
|
!Import concepts in Git
|
|
!!Submodules
|
+This is the __second major stumbling block__. Git submodules are similar to virtual modules in CVS. The achilles heal of git submodules is a "git submodule add ..." is tied to a particular commit for the submodule repository. |
+ |
+A lesser issue, submodules can only have directories in the current directory, so you have to nest. We cannot do the all-in-one "cvs co bitewaver" like we used to. |
+ |
|
!!Stashing
|
[http://progit.org/book/ch6-3.html]
|