Here are step-by-step instructions on how to submit Tiki code changes under two different situations: when using a hosted server and when using your own PC as a server for development purposes. How to get commit access and Where to commit are recommended reading before starting these instructions.
Although the process is a little different for each situation, the basic idea is the same. First, you check out the developer version you wish to make changes to. Checking out means downloading the entire developer version from the repository (SourceForge.net) to your server using a SVN program. An SVN program is used because it will keep track of the changes you make and allow you to upload only the changed files to the repository. The entire Tiki program is downloaded (not just the files you want to change) so that you can install and test the Tiki version with your changes. After making and testing your changes, you commit them to the repository using the SVN program, which means your changed files are uploaded into the repository, creating a new Tiki development version that includes your changes.
Below, the processes for both situations (hosted server and PC as the server) are described.
The following are must-haves in order to commit whether you are using a hosted server or your own PC as the server:
SourceForge Account: You will need to have an account at SourceForge.net - click here to register for one.
Project Administrator Permission: A Tiki Project Administrator will need to grant you permission to write to the code repository by adding your SourceForge username to the Tiki project as a developer. Project Administrators are listed at http://sourceforge.net/projects/tikiwiki/develop.
Decide Version: There are different developer versions that changes can be made to. Before you begin, decide or get advice on which version you should download and make changes to. See Where to commit for more information. Which version you intend to change affects the path you will need to specify when checking out and downloading those files. The paths for the different versions can be found at SourceForge.net at https://svn.code.sf.net/p/tikiwiki/code/.
With a Hosted Server
The following are must-haves in order to commit on a hosted server in addition to the general prerequisites noted above:
SSH/Shell Access: You will need to access your server using shell access. This may be available from your web host (or you may be able to request it). If so, it will show up on the cPanel (if you have one) in the Security section. Otherwise, there are free third-party programs that do the same thing (like PuTTy - and here's a list of such programs).
Linux and Mac
Linux and Mac machines already include a system utility called Terminal that provides shell access.
SVN: Your server will need to have SVN installed. If it's not installed, try typing apt-get install subversion while connected through shell access to install it.
With Your PC as Server
In addition to the must-haves noted above for either situation, here are additional must-haves in order to commit when using your PC as a server:
Third-Party SVN Program: You will need to install a third-party SVN program. A list of such programs can be found on this Wikipedia page, or see the Setup a Development Environment page on this site which links to pages documenting how to create a development environment.
Third-Party source code editor: You will need to download and install a third-party code editor to make the changes you wish to make. Do not use a plain text editor (like Word). A list of code editors can be found on this Wikipedia page, or see the Setup a Development Environment page on this site for some tips.
Warning
It's very important to set your code editor to: (1) use Unix-style line breaks (LF) and not Windows style breaks (CRLF), and (2) encode documents with UTF-8 without BOM (the "without BOM" is important).
Here's an overview of the steps for committing using a hosted server:
Get onto your server through SSH/Shell Access
Run the svn command to download the development version you want to change onto your server
Make the code changes you want to make and save them
Run the svn command to check your changes
Test your the Tiki install that you just changed to see if it functions
Run the svn command to commit your changes
End the SSH/Shell Access connection
These steps are described in detail below.
Note
These instructions assume you are using a standard shell on a Linux machine (i.e., your server is running Linux). If the server is using Windows, please make sure to run something like dos2unix before you commit.
Step 1: Get on Your Server Using SSH/Shell Access
Access the server you want to download to through SSH/Shell Access (through cPanel or third-party software). You will need to enter the following at a minimum:
The server's host name or IP Address
Your username on that server
The related password
Connect to remote server via SSH
Copy to clipboard
ssh username@server.com
enter password
You can accept message about RSA key fingerprint.
Once on your server, move to the web directory
Move to the web directory, typically "www"
Copy to clipboard
cd www
Create an empty directory on your server to download to like you would for a normal install of Tiki
Create a directory, for example "tiki"
Copy to clipboard
mkdir tiki
Move to the directory you want to download to. For example, if you want to download to tiki, then type the following and hit enter:
Move to download directory
Copy to clipboard
cd tiki
Step 2: Checkout Files via SVN
Type in svn checkout (path) . and hit enter to check out a development version. The (path) in the command is the path on SourceForge.net to the version you wish to make changes to.
Tip
See Where to commit for guidelines on deciding the appropriate version to commit to.
Below, two alternatives are shown: checking out a branch and checking out the trunk. In both cases, assume we found a bug in the last_mod plugin and therefore want to change the lib/wiki-plugins/wikiplugin_lastmod.php file.
Example: Checking out Branch 12.x (see Get code for available Versions)
In both cases the last space and period at the end is very important - it causes the download to be made to here, in the directory where you are at when the command is made.
After hitting enter, you should see the file names scrolling up the screen as the files are downloaded. At the end, you should see a message telling which revision has been checked out, as in this screenshot:
Step 3: Make Your Changes
You can make changes either using your normal edit interface or through the shell access.
Using Normal Edit Interface
The easiest way to make changes is usually through whatever interface you normally use, for example by going through cPanel > File Manager and opening the file with your server's code editor, however using a editor like PhpStorm will save immeasurable amounts of time if moderate changes are made. You may also want to familiarize yourself with Tiki's DevTips and Secure Coding Practice Guidelines. After you've made and saved your changes, go to Step 4.
Expand the instructions below if you're making changes through the shell access instead.
To edit a file, type "nano (filepath)", where (filepath) is the path of the file you want to change.
For instance, to change lib/wiki-plugins/wikiplugin_lastmod.php, you would type the following and hit enter:
Make sure you are in the nano edit screen.
It should look like the following screenshot, with the file path at the top, the code in the body, and a menu at the bottom:
{XYimg src=>img/wiki_up/Commit-InNano.jpg thumb=mouseover}
Warning
If you don't see any code in the body and it says "New File" at the bottom, then you've typed in the file path incorrectly if you were intending to edit an existing file. Just exit (Ctrl+x) and retype the command.
Make changes and then exit (Cntrl+x)
This will bring up the following confirmation alert at the bottom of the screen:
{XYimg src=>img/wiki_up/Commit-ModifyConfirm1.jpg, max=>300 thumb=mouseover}
Press Y to save change
This will bring up the following prompt at the bottom of the screen to confirm or change the file name:
{XYimg src=>img/wiki_up/Commit-FileName1.jpg, max=>300, thumb=mouseover}
Hit Enter to save to current file name
Unless you are creating a new file, confirm the file path shown and hit enter
Step 4: Check Your Changes
Go back to the SSH/shell access screen and make sure you are in the top level tiki directory, www/tiki in our example
In the SSH/shell access screen type svn diff to view your changes:
Use svn diff to view changes
Copy to clipboard
svn diff
All changes you have made to all files will be shown as in the following screenshot:
As you can see, only one line was changed here (actually one character, an O was changed to a Z). Since this was the intention, we will move on to test the change.
Step 5: Test Your Tiki Install
If you haven't already, install the developer version you have downloaded and changed by following the normal Installation procedures through an internet browser.
Note
If you get a server error, you may need to set the permissions for all of the files you downloaded to 755.
Once installed, test Tiki to ensure that your changes work properly.
Step 6: Commit Your Changes
Type the svn commit command which consists of 3 parts:
The svn command: svn commit -m
A note describing the change, for example: [FIX](short description of fix) Your commit message may start with one or more to distinguish changes. Descriptions with tags will go into the changelog and tags will help to classify.
The following tags can be used to distinguish changes:
NEW for additions of new features
ENH is an enhancement; not really new but makes things work better (e.g. look and feel, performance...)
DOC for improvements in the tips or contextual documentation provided to the user/admin
FIX for bug fixes of any sort
SEC for security fix operations. If you feel you have reason to put this tag, please first contact security at tiki.org.
UPD for updates of third party/vendor libraries
UX for user experience improvements; makes Tiki easier to use and understand (more details in https://dev.tiki.org/UX )
DB for changes in the database
MOD is a change which may be disruptive. For example, changing the default value of an option.
REM for feature removals
REF for refactoring; changes the structure of the code (to make it cleaner or clearer), without changing its actual behaviour.
KIL for removals of unused or obsolete files. This tag was used in the sense of REM prior to Tiki 6.
REL for the release process
MRG for branch merges, generally performed by the merge scripts
TRA for translation
When possible, it's also nice to indicate what feature is concerned by the change.
The tags info is also online: https://dev.tiki.org/Commit+Tags
++ If there is a report of the issue solved, add a line to indicate it. For example, if the change addresses issue #426: "Ref: http://dev.tiki.org/wish426"
++
++ In the case of a "backport," (committing a change already made in trunk to an earlier version), a backport reference should be added in front. For example, [bp/r61102] [FIX]... in a commit message to the branch branches/16x, means this fix is a backport of trunk revision 61102 to the next version of Tiki 16x. Depending on the period, backports are subject to an extra level of review so please read Quality Team and Where to commit first or ask on the mailing list or IRC if unsure.
++
++ In the case of a "rolling back," (reverting a commit), a "rb" reference should be added in front. For example, [rb/r61102] ... in a commit message to the branch branches/16x, means the change committed in revision 61102 are rolled back (removed, reverted) to the previous state, before r61102.
++
++ In the case of a typo fix only and/or while doing code reformatting that won’t need to be in the changelog.txt file it is ok to commit without a tag.
++
The file path: filepath
You can leave the file path off, in which case all changes are shown in svn diff will be committed (even if more than one file has been changed)
Following our example, this would be:
Commit command
Copy to clipboard
svn commit -m "[FIX] Fixed display of time zone, which was showing as %O" lib/wiki-plugins/wikiplugin_lastmod.php
Here's a screenshot (with a slightly different description):
You may be prompted for a password based on your server username instead of your SourceForge user name. Just hit enter to move to a prompt for entering your SourceForge user name.{REMARKSBOX}
You will get a message indicating that your commit was successful
Step 7: Disconnect Shell Connection
Shell command
Copy to clipboard
exit
Step 8: Be Proud of Yourself
Tiki is the collective work of hundreds of people. It works because of volunteers, like you, take the time to make it better.
Notice of your commit will appear in the Tiki IRC chat channel. Go here to see it in the logs or, better yet, log on to the actual chat channel just before you commit and see the notice pop up live!
See next page for instructions when using your own PC as a development server.
^ __Note:__ Git is now the preferred method for contributing to Tiki, please see the ((Git Workflow)) for instructions (and update them where necessary).
You can now simply make a merge request at https://gitlab.com/tikiwiki/tiki/merge_requests thanks to the ((Git and SVN combined workflow)) ^
! How to Submit Tiki Code Changes
Here are step-by-step instructions on how to submit Tiki code changes under two different situations: when using a hosted server and when using your own PC as a server for development purposes. ((How to get commit access)) and ((Where to commit)) are recommended reading before starting these instructions.
Although the process is a little different for each situation, the basic idea is the same. First, you __check out__ the developer version you wish to make changes to. Checking out means downloading the entire developer version from the __repository__ (SourceForge.net) to your server using a __SVN__ program. An SVN program is used because it will keep track of the changes you make and allow you to upload only the changed files to the repository. The entire Tiki program is downloaded (not just the files you want to change) so that you can install and test the Tiki version with your changes. After making and testing your changes, you __commit__ them to the repository using the SVN program, which means your changed files are uploaded into the repository, creating a new Tiki development version that includes your changes.
Below, the processes for both situations (hosted server and PC as the server) are described.
{maketoc title="" levels="2,3"}
!! Prerequisites
!!! In Either Situation
The following are must-haves in order to commit whether you are using a hosted server or your own PC as the server:
* __SourceForge Account:__ You will need to have an account at SourceForge.net - click [http://sourceforge.net/account/registration/|here] to register for one.
+ %%%
* __Project Administrator Permission:__ A Tiki Project Administrator will need to grant you permission to write to the code repository by adding your SourceForge username to the Tiki project as a developer. Project Administrators are listed at [http://sourceforge.net/projects/tikiwiki/develop].
+ %%%
* __Decide Version:__ There are different developer versions that changes can be made to. Before you begin, decide or get advice on which version you should download and make changes to. See ((Where to commit)) for more information. Which version you intend to change affects the path you will need to specify when checking out and downloading those files. The paths for the different versions can be found at SourceForge.net at [https://svn.code.sf.net/p/tikiwiki/code/].
!!! With a Hosted Server
The following are must-haves in order to commit on a hosted server in addition to the general prerequisites noted above:
* __SSH/Shell Access:__ You will need to access your server using shell access. This may be available from your web host (or you may be able to request it). If so, it will show up on the cPanel (if you have one) in the Security section. Otherwise, there are free third-party programs that do the same thing (like PuTTy - and here's a [http://en.wikipedia.org/wiki/Comparison_of_SSH_clients|list] of such programs).
+ {REMARKSBOX(type=note, title=Linux and Mac)}''Linux and Mac machines already include a system utility called __Terminal__ that provides shell access.''{REMARKSBOX}
* __SVN:__ Your server will need to have SVN installed. If it's not installed, try typing -+apt-get install subversion+- while connected through shell access to install it.
!!! With Your PC as Server
In addition to the must-haves noted above for either situation, here are additional must-haves in order to commit when using your PC as a server:
* __Third-Party SVN Program:__ You will need to install a third-party SVN program. A list of such programs can be found on [http://en.wikipedia.org/wiki/Comparison_of_Subversion_clients|this Wikipedia page], or see the ((Setup a Development Environment)) page on this site which links to pages documenting how to create a development environment.
+ %%%
* __Third-Party source code editor:__ You will need to download and install a third-party code editor to make the changes you wish to make. Do not use a plain text editor (like Word). A list of code editors can be found on [http://en.wikipedia.org/wiki/List_of_source_code_editors|this Wikipedia page], or see the ((Setup a Development Environment)) page on this site for some tips.
+{REMARKSBOX(type="warning" title="Warning")} ''It's very important to set your code editor to:%%%(1) use Unix-style line breaks (__LF__) and not Windows style breaks (__CRLF__), and %%%(2) encode documents with __UTF-8 without BOM__ (the "without BOM" is important).''{REMARKSBOX}
Of course other software is required to set up your PC as a server in the first place (see [tiki-index.php?page=Commit&pagenum=2#Using_Your_PC_as_the_Server|Using Your PC as the Server] on the next page or see ((Setup a Development Environment)) for some tips.
!! Using a Hosted Server
!!! Overview of Steps
Here's an overview of the steps for committing using a hosted server:
* Get onto your server through __SSH/Shell Access__
* Run the __svn__ command to download the development version you want to change onto your server
* Make the code changes you want to make and save them
* Run the __svn__ command to check your changes
* Test your the Tiki install that you just changed to see if it functions
* Run the __svn__ command to commit your changes
* End the __SSH/Shell Access__ connection
These steps are described in detail below.
{REMARKSBOX(type=>note, title=>Note)}''These instructions assume you are using a standard shell on a Linux machine (i.e., your server is running Linux). If the server is using Windows, please make sure to run something like dos2unix before you commit.''{REMARKSBOX}
!!! Step 1: Get on Your Server Using SSH/Shell Access
# Access the server you want to download to through SSH/Shell Access (through cPanel or third-party software). You will need to enter the following at a minimum:
## The server's host name or IP Address
## Your username on that server
## The related password
+ {CODE(caption="Connect to remote server via SSH" wrap="1" colors="bash")}ssh username@server.com
enter password
{CODE}
+ You can accept message about RSA key fingerprint.
+ %%%
# Once on your server, move to the web directory
+ {CODE(caption=>Move to the web directory, typically "www", wrap=>1, colors=bash)}cd www
{CODE}
+ %%%
# Create an empty directory on your server to download to like you would for a normal install of Tiki
+ {CODE(caption=>Create a directory, for example "tiki", wrap=>1, colors=bash)}mkdir tiki
{CODE}
+ %%%
# Move to the directory you want to download to. For example, if you want to download to __tiki__, then type the following and hit enter:
+ {CODE(caption=>Move to download directory, wrap=>1, colors=bash)}cd tiki{CODE}
!!! Step 2: Checkout Files via SVN
Type in -+svn checkout (path) .+- and hit enter to check out a development version. The (path) in the command is the path on SourceForge.net to the version you wish to make changes to.
{REMARKSBOX(type=>tip, title=>Tip)}''See ((Where to commit)) for guidelines on deciding the appropriate version to commit to.''{REMARKSBOX}
Below, two alternatives are shown: checking out a branch and checking out the trunk. In both cases, assume we found a bug in the last_mod plugin and therefore want to change the -+lib/wiki-plugins/wikiplugin_lastmod.php+- file.
# Example: Checking out Branch 12.x (see ((Get code)) for available Versions)
+ {CODE(caption=>Checking out branch 12.x,wrap=>1, colors=bash)}svn checkout https://svn.code.sf.net/p/tikiwiki/code/branches/12.x .{CODE}
+ %%%
# Example: Checking out Trunk
+ {CODE(caption="Checking out trunk" wrap="1" colors="bash")}svn checkout https://svn.code.sf.net/p/tikiwiki/code/trunk .{CODE}
{REMARKSBOX(type=>warning, title=>Important)}''In both cases the last space and period at the end is very important - it causes the download to be made to __here__, in the directory where you are at when the command is made.''{REMARKSBOX}
After hitting enter, you should see the file names scrolling up the screen as the files are downloaded. At the end, you should see a message telling which revision has been checked out, as in this screenshot:
{img fileId="627" }
!!! Step 3: Make Your Changes
You can make changes either using your normal edit interface or through the shell access.
!!!! Using Normal Edit Interface
The easiest way to make changes is usually through whatever interface you normally use, for example by going through __cPanel > File Manager__ and opening the file with your server's code editor, however using a editor like PhpStorm will save immeasurable amounts of time if moderate changes are made. You may also want to familiarize yourself with Tiki's ((DevTips)) and ((Secure Coding Practice Guidelines)). After you've made and saved your changes, go to __Step 4__.
Expand the instructions below if you're making changes through the shell access instead.
!!!!- Use Shell Access to Make Changes
# To edit a file, type "__nano (filepath)__", where (filepath) is the path of the file you want to change.
+ For instance, to change __lib/wiki-plugins/wikiplugin_lastmod.php__, you would type the following and hit enter:
+ {CODE(caption=>Use nano command to edit file, wrap=>1, colors=bash)}nano lib/wiki-plugins/wikiplugin_lastmod.php{CODE}
+ ''Screenshot:''
+ {XYimg type="fileId" fileId="628" thumb="mouseover" max="300"}
+ %%%
# Make sure you are in the nano edit screen.
+ It should look like the following screenshot, with the file path at the top, the code in the body, and a menu at the bottom:
+ {XYimg src=>img/wiki_up/Commit-InNano.jpg thumb=mouseover}
+ %%%
+ {REMARKSBOX(type=>warning, title=> Warning)}''If you don't see any code in the body and it says "New File" at the bottom, then you've typed in the file path incorrectly if you were intending to edit an existing file. Just exit (Ctrl+x) and retype the command.''{REMARKSBOX}
+ %%%
# Make changes and then exit (Cntrl+x)
+ This will bring up the following confirmation alert at the bottom of the screen:
+ {XYimg src=>img/wiki_up/Commit-ModifyConfirm1.jpg, max=>300 thumb=mouseover}
+ %%%
# Press Y to save change
+ This will bring up the following prompt at the bottom of the screen to confirm or change the file name:
+ {XYimg src=>img/wiki_up/Commit-FileName1.jpg, max=>300, thumb=mouseover}
+ %%%
# Hit Enter to save to current file name
+ Unless you are creating a new file, confirm the file path shown and hit enter
!!! Step 4: Check Your Changes
# Go back to the SSH/shell access screen and make sure you are in the top level tiki directory, __www/tiki__ in our example
+ %%%
# In the SSH/shell access screen type -+svn diff+- to view your changes:
+ {CODE(caption=>Use svn diff to view changes,wrap=>1, colors=bash)}svn diff{CODE}
+ All changes you have made to all files will be shown as in the following screenshot:
+ {img type="fileId" fileId="786" thumb="mouseover" button="popup" rel="box" width="200"}
+
+ As you can see, only one line was changed here (actually one character, an O was changed to a Z). Since this was the intention, we will move on to test the change.
!!! Step 5: Test Your Tiki Install
# If you haven't already, install the developer version you have downloaded and changed by following the normal ((doc:Installation)) procedures through an internet browser.
+ {REMARKSBOX(type=>note, title=>Note)}''If you get a server error, you may need to set the permissions for all of the files you downloaded to 755.''{REMARKSBOX}
+
# Once installed, test Tiki to ensure that your changes work properly.
!!! Step 6: Commit Your Changes
# Type the -+svn commit+- command which consists of 3 parts:
+ %%%
## The svn command: -+svn commit -m+-
++ %%%
## A note describing the change, for example: -+~np~[FIX]~/np~__ __(short description of fix)+-
++ Your commit message may start with one or more to distinguish changes. Descriptions with tags will go into the changelog and tags will help to classify.
The following tags can be used to distinguish changes:
* NEW for additions of new features
* ENH is an enhancement; not really new but makes things work better (e.g. look and feel, performance...)
* DOC for improvements in the tips or contextual documentation provided to the user/admin
* FIX for bug fixes of any sort
* SEC for security fix operations. If you feel you have reason to put this tag, please first contact security at tiki.org.
* UPD for updates of third party/vendor libraries
* UX for user experience improvements; makes Tiki easier to use and understand (more details in https://dev.tiki.org/UX )
* DB for changes in the database
* MOD is a change which may be disruptive. For example, changing the default value of an option.
* REM for feature removals
* REF for refactoring; changes the structure of the code (to make it cleaner or clearer), without changing its actual behaviour.
* KIL for removals of unused or obsolete files. This tag was used in the sense of [REM] prior to Tiki 6.
* REL for the release process
* MRG for branch merges, generally performed by the merge scripts
* TRA for translation
When possible, it's also nice to indicate what feature is concerned by the change.
The tags info is also online: https://dev.tiki.org/Commit+Tags
++ If there is a report of the issue solved, add a line to indicate it. For example, if the change addresses issue #426: ~np~"Ref: http://dev.tiki.org/wish426"~/np~
++
++ In the case of a "__backport__," (committing a change already made in trunk to an earlier version), a backport reference should be added in front. For example, -+~np~[bp/r61102] [FIX]...~/np~+- in a commit message to the branch ''branches/16x'', means this fix is a backport of trunk revision 61102 to the next version of Tiki 16x. Depending on the period, backports are subject to an extra level of review so please read ((Quality Team)) and ((Where to commit)) first or ask on the mailing list or IRC if unsure.
++
++ In the case of a "__rolling back__," (reverting a commit), a "rb" reference should be added in front. For example, -+~np~[rb/r61102] ...~/np~+- in a commit message to the branch ''branches/16x'', means the change committed in revision 61102 are rolled back (removed, reverted) to the previous state, before r61102.
++
++ In the case of a typo fix only and/or while doing code reformatting that won’t need to be in the changelog.txt file it is ok to commit without a tag.
++
## The file path: __filepath__
*** You can leave the file path off, in which case all changes are shown in ''svn diff'' will be committed (even if more than one file has been changed)
+ Following our example, this would be:
+ {CODE(caption=>Commit command,wrap=>1, colors=bash)}svn commit -m "[FIX] Fixed display of time zone, which was showing as %O" lib/wiki-plugins/wikiplugin_lastmod.php{CODE}
+ Here's a screenshot (with a slightly different description):
+ {img fileId="789" thumb="mouseover" width="200" button="popup" rel="box"
+ %%%
# When prompted, enter your SourceForge username and password
+ {REMARKSBOX(type=>tip. title=>Tip)}''You may be prompted for a password based on your server username instead of your SourceForge user name. Just hit enter to move to a prompt for entering your SourceForge user name.''{REMARKSBOX}
+
# You will get a message indicating that your commit was successful
!!! Step 7: Disconnect Shell Connection
{CODE(caption=>Shell command,wrap=>1, colors=bash)}exit{CODE}
!!! Step 8: Be Proud of Yourself
Tiki is the collective work of hundreds of people. It works because of __volunteers__, like you, take the time to make it better.
Notice of your commit will appear in the Tiki IRC chat channel. Go [http://irc.tiki.org/irclogger_logs/tikiwiki|here] to see it in the logs or, better yet, log on to the actual chat channel just before you commit and see the notice pop up live!
''__See next page for instructions when using your own PC as a development server.__''
...page...
!! Using Your PC as the Server
These instructions apply when you will be downloading the development version to your own PC which is set up as a server for purposes of developing. Windows and MAC PCs can also be set up as servers when the necessary server programs (Apache, MySQL, PHP, etc.) are installed either individually or packaged together (see [http://en.wikipedia.org/wiki/Comparison_of_WAMPs|this Wikipedia page] for a list of such packages).
{REMARKSBOX(type="note" title="Note")}''The examples and screenshots used in this section were created using a Windows PC with XAMPP as the web server package and TortoiseSVN as the SVN software. TortoiseSVN is a shell extension that is integrated into Windows Explorer when installed. It is accessed by right-clicking on folders or files in Windows Explorer.''
%%%
''There are other combinations of software that can be used as well - see ((Setup a Development Environment)) for documentation on some configurations.''{REMARKSBOX}
!!! Overview of Steps
Here's an overview of the steps for committing when using your PC as a server:
* Use a third-party __SVN program__ to check out the development version you want to change onto your PC
* Use a third-party __code editor__ to make the code changes you want to make and save them
* Use a third-party __SVN program__ to check your changes
* Test your the Tiki install that you just changed to see if it functions
* Use a third-party __SVN program__ to commit your changes
These steps are described in detail below.
!!! Step 1: Checkout Files Via SVN Program
Checking out means you are downloading the files to your PC under a third-party SVN program that keeps track of all changes that are made.
Below, assume that we found a bug in the last_mod plugin and therefore want to change the -+lib/wiki-plugins/wikiplugin_lastmod.php+- file. Assume that we've decided to change __Branch 7.x__ after looking at ((Where to commit)).
# Open Windows Explorer and right-click on an empty folder where you would like the development version to be downloaded into and select "SVN Checkout...".
+ In this example, the folder is called -+tikisvn+-.
+ %%%
# In the pop-up, type in the following as the URL of the repository: -+http://svn.code.sf.net/p/tikiwiki/code/7.x+-, as shown in this screenshot:
+ {img fileId="790" button="popup" rel="box" thumb="mouseover"}
+ %%%
# After clicking OK, the pop-up will show the files being downloaded and will indicate when the download is complete as shown in this screenshot:
+ {img fileId="791" button="popup" rel="box" thumb="mouseover" width="200"}
!!! Step 2: Make Your Changes
# Make changes to the file you wish to fix using a third party code editor.
+ {REMARKSBOX(type=>warning, title=>Warning - File settings)}''Any files you change should be saved with "LF" as the line break characters (Unix-style), not CR + LF as used in Windows. These characters are usually hidden so use a "show all characters" type option or look in the settings or preferences to make sure the line breaks are Unix-style. %%% %%%Also, make sure the settings are set to encode documents with __UTF-8 without BOM__ (the "without BOM" is important).''{REMARKSBOX}
+ In our example, __lib/wiki-plugins/wikiplugin_lastmod.php__ is being changed. After the change is saved, the changed status is indicated by the red color (the green color on the other folders and file icons show that the files were downloaded using the SVN program):
+ {img fileId="793" button="popup" rel="box" thumb="mouseover" width="200"}
!!! Step 3: Check Your Changes
# In TortoiseSVN, this is done by right clicking the -+tikisvn+- folder and selecting "SVN Commit..." from the menu (even though you're not committing yet!). The following pop-up will appear:
+ {img fileId="792" button="popup" rel="box" thumb="mouseover" width="200"}
+ %%%
# Double click the file name shown in the above pop up to see the following record of changes made:
+ {img fileId="794" button="popup" rel="box" thumb="mouseover" width="200"}
# Check to see that these are the changes you intended
!!! Step 4: Test Your Wiki Install
# If you haven't already, install the developer version you have downloaded and changed by following the normal ((doc:Installation)) procedures through an internet browser.
+ %%%
# Once installed, test Tiki to ensure that your changes work properly.
!!! Step 5: Commit Your Changes
# Type a description of the change you have made in the Commit pop-up that was brought up in the first part of Step 3 above and click OK. (If the pop-up is closed, right-click the -+tikisvn+- folder and select "SVN Commit..." from the menu to open it again.)
+ %%%
+ The following tags can be used to distinguish changes:
+ {BOX()}{include page="Commit Tags" start="INCLUDE-START" stop="INCLUDE-END"}{BOX}
+ In the case of a "backport," (committing a change already made in trunk to an earlier version), a backport reference should be added in front. For example, -+~np~[bp/r28500] [FIX]...~/np~+- in a commit message to the branch ''branches/5x'', means this fix is a backport of trunk revision 28500 to the next version of Tiki 5x. Depending on the period, backports are subject to an extra level of review so please read ((Quality Team)) and ((Where to commit)) first or ask on the mailing list or IRC if unsure.
+ %%%
+ Here's a screenshot showing the description filled in:
+ {img fileId="795" button="popup" rel="box" thumb="mouseover" width="200"}
+ %%%
+ {REMARKSBOX(type=>comment, title=>Comment)}''Note that the Commit pop-up was brought up by right-clicking on the __tikisvn__ folder and not on the actual file that was changed. There is no need to right-click the files that are actually changed - right-clicking the top-level tiki folder will bring up only the files that have been changed for the commit.''{REMARKSBOX}
+ %%%
# Enter your SourceForge username and password when prompted
+ %%%
# The SVN program will notify you when the commit is completed and successful
!!! Step 6: Be Proud of Yourself
Tiki is the collective work of hundreds of people. It works because of __volunteers__, like you, take the time to make it better.
Notice of your commit will appear in the Tiki IRC chat channel. Go [http://irc.tiki.org/irclogger_logs/tikiwiki|here] to see it in the logs or, better yet, log on to the actual chat channel just before you commit and see the notice pop up live!
-=alias=-
* (alias(Commit))
* (alias(Contribute Code))
* (alias(Share Code))
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.