Loading...
 

Using Git with Tiki

Git repository information


A Git repository is available at git.tiki.org and is synced with SVN repository at SF.net, so that developers can either develop using Git or SVN. The complete workflow is being implemented and is documented at Git and SVN combined workflow.

The workflow is now experimental. If you want write access to git.tiki.org, ask Marc Laporte

Setup


Here are some tips that will make life easier when changing a development environment from SVN to Git:
Git Tips

Git cache on VMs


Since Tiki integrates with external services, sometimes one VM per branch is an important setup. One possible setup to solve this is having the tiki.reference in your host and use sshfs to mount it inside your VM:

The instructions below will configure that to be automatically mounted, adjust user and directories to your local setup:

mkdir gitcache
su -
apt install sshfs fuse autofs
modprobe fuse
echo fuse >> /etc/modules
echo '/home/lfagundes/gitcache /etc/auto.sshfs uid=1000,gid=1000,--ghost' >> /etc/auto.master
echo 'tiki.reference -fstype=fuse,rw,nodev,nonempty,noatime,allow_other,max_read=65536 :sshfs\#lfagundes@host\:/home/lfagundes/devel/tiki.reference' > /etc/auto.sshfs
exit
ln -s gitcache/tiki.reference

Development habits


The magic synchronization of SVN and Git, done by Subgit, is a complex problem. We've have observed a weird behaviour when commit order is not chronological, probably consequence of a git pull --rebase. To keep things simpler for synchronization to work as expected, here are some tips:

  • Don't use git pull --rebase. Instead, do a git fetch; git rebase --ignore-date .
  • Avoid git merges inside same branch. If a git pull causes a merge, abort the merge and run the fetch/rebase above.
  • Better to push your changes as soon as you commit them, so you don't stack changes with same datetime when rebasing.

Legacy info


Information below concerns the Git repository at GitHub, which used to be synced with sync2git and is not working properly. Information remains here while git.tiki.org is evaluated and implemented.

Git mirror information


If you prefer to download Tiki via GIT, which might be more useful for your internal development processes, you can access that mirror here: https://github.com/tikiorg/tiki

Note: This page needs more info on how one can effectively use GIT within one's own development process

Related Question: Will Tiki ever migrate to GIT from SVN? see What ToDo When Migrating To Git for the answer.

Some notes regarding setting up the upstream branch in Linux or Mac OS.

  • cd into your local mfm git master clone, and make sure it's up to date with
$ git pull
  • then
$ git status
  • to check you haven't got anything stuck in there to push (if you want to clear any changes and LOSE them do "git reset --hard origin/master")
  • Then
$ git remote add upstream https://github.com/changi67/tiki.git
$ git fetch upstream
  • and it should start downloading the entire internet (actually just Tiki i think, takes a while)
  • If you get any errors about SSL certificates try "git config --global http.sslVerify false" and retry the fetch upstream one.
  • Then to actually do the merge do

$ git pull upstream 12.x

To add new branches from Tiki to your local git repo do

$ git fetch upstream

And you may need to close and reopen your IDE project to show the new branches.

Other notes

Why does the Git mirror sometimes stop updating and what to do

This should not happen now, as there is now a script to auto update the authors file to avoid this from happening. But leaving this section here until we are sure this info is no longer needed


Whenever there is a new committer to Tiki, the sync2git code will fail, as it tries to map the new committer in SVN to the GIT committer, or some other problem might be causing the issue.

First thing to do would be to check /var/log/sync2git.log, or to try running the sync2git again.

If the problem is due to new committer: You will receive an error saying that a certain committer could not be found. On the community server ovh.tiki.org, there is a file: /etc/sync2git/projects/tiki/authors.txt

Add a new line at the end of the authors.txt:

committersfaccountname = committersfaccountname <committersfaccountname@users.sf.net>

But first, make sure the name does not already exist in the file so that you are adding the right committer.

Once you added that line, save the file, and then you need to remove the lock file:
sudo rm /var/lib/sync2git/tiki/.lock

Finally, execute sync2git:
sudo sync2git

Keywords

The following is a list of keywords that should serve as hubs for navigation within the Tiki development and should correspond to documentation keywords.

Each feature in Tiki has a wiki page which regroups all the bugs, requests for enhancements, etc. It is somewhat a form of wiki-based project management. You can also express your interest in a feature by adding it to your profile. You can also try out the Dynamic filter.

Accessibility (WAI & 508)
Accounting
Administration
Ajax
Articles & Submissions
Backlinks
Banner
Batch
BigBlueButton audio/video/chat/screensharing
Blog
Bookmark
Browser Compatibility
Calendar
Category
Chat
Comment
Communication Center
Consistency
Contacts Address book
Contact us
Content template
Contribution
Cookie
Copyright
Credits
Custom Home (and Group Home Page)
Database MySQL - MyISAM
Database MySQL - InnoDB
Date and Time
Debugger Console
Directory (of hyperlinks)
Documentation link from Tiki to doc.tiki.org (Help System)
Docs
DogFood
Draw
Dynamic Content
Preferences
Dynamic Variable
External Authentication
FAQ
Featured links
Feeds (RSS)
File Gallery
Forum
Friendship Network (Community)
Group
Help
History
Hotword
HTML Page
i18n (Multilingual, l10n, Babelfish)
Image Gallery
Import-Export
Install
Integrator
Interoperability
Inter-User Messages
InterTiki
jQuery
Kaltura video management
Karma
Live Support
Logs (system & action)
Lost edit protection
Mail-in
Map
Menu
Meta Tag
Missing features
Visual Mapping
Mobile
Mods
Modules
MultiTiki
MyTiki
Newsletter
Notepad
OS independence (Non-Linux, Windows/IIS, Mac, BSD)
Organic Groups (Self-managed Teams)
Packages
Payment
PDF
Performance Speed / Load / Compression / Cache
Permission
Poll
Profiles
Quiz
Rating
Realname
Report
Revision Approval
Scheduler
Score
Search engine optimization (SEO)
Search
Security
Semantic links
Share
Shopping Cart
Shoutbox
Site Identity
Slideshow
Smarty Template
Social Networking
Spam protection (Anti-bot CATPCHA)
Spellcheck
Spreadsheet
Staging and Approval
Stats
Survey
Syntax Highlighter (Codemirror)
Tablesorter
Tags
Task
Tell a Friend, alert + Social Bookmarking
Terms and Conditions
Theme
TikiTests
Timesheet
Token Access
Toolbar (Quicktags)
Tours
Trackers
TRIM
User Administration
User Files
User Menu
Watch
Webmail and Groupmail
WebServices
Wiki History, page rename, etc
Wiki plugins extends basic syntax
Wiki syntax text area, parser, etc
Wiki structure (book and table of content)
Workspace and perspectives
WYSIWTSN
WYSIWYCA
WYSIWYG
XMLRPC
XMPP




Useful Tools