Source Code Repository

From Project JEDI Wiki
Jump to navigationJump to search

What is the Source Code Repository?

The repository is where all the code in the JCL and JVCL is stored. When a developer adds or changes a file, they commit it to the repository. The entire history of the code is there, in a version control system called GIT. This is where it all happens: the latest bugfixes and the newest developments.

Why should I care?

When a bug is fixed, you can get the update straight away! Not only that, you can see exactly what was changed, so you can learn from it...after all, you're a programmer right?

Best of all, when you fix a bug or improve something, it's easy to submit it to us. And it's easy for us to review it and commit it to the repository, which means it'll happen much faster than if you send it to us in any other form.

Also, each time you update to the latest revision (i.e. get the latest changes), you only download the latest changes. This is quicker than dowloading the whole JCL and JVCL again, as you do when using last night's jcl daily zip and jvcl daily zip.

But isn't the latest code unstable?

Usually not. Think of the repository like a tree - with roots, a trunk, branches, leaves...yeah, that kind of tree. ;) Stable code, tested bugfixes and straightforward development goes in the trunk. And unstable/experimental/untested code goes on branches. Since you'll be using the trunk only, you will usually have the most stable code possible, better even than the releases!

Great news! You've come across one of those weird, hard to find/fix and incredibly annoying bugs. As one (or more) of our developers is trying to fix it (on a branch), you can very easily test it & provide feedback. Why do this? It will help us resolve the bug much faster.

But what if a major bug makes it into the trunk? If you can't or don't want to fix it, you can simply go back to the previous revision until it is fixed. However, be warned that this may happen occasionally - when you're on the cutting edge, sometimes it will bleed. If this is a problem for you, then stick to the releases...you won't have the latest improvements and bugfixes, but at least you won't encounter any new bugs.

This sounds a little complicated for me...

Trust me, it's very simple. I'll walk you through the process step by step anyway, so you don't even have to think. ;)

How to access the JCL Repository

1. Since you're using Windows, download and install the latest version of TortoiseGIT.

2. If you already have JCL installed, uninstall it and delete the contents of the "jcl" folder. If not, create a folder called "jcl" somewhere on your hard disk.

3. Right-click on the "jcl" folder and click "GIT Clone..."

4. Paste this link into "URL of repository" and click "OK": https://github.com/project-jedi/jcl.git

5. Run jcl\install.bat

That's it!

And anytime you want to get the latest changes, right-click on the "jcl" folder and click "GIT Sync..." or "GIT Pull...". Note: after updating, you should always run jcl\install.bat.

How to access the JVCL Repository

You've already installed and configured TortoiseGIT (steps 1 & 2 above), so you can skip straight to step 3.

3. If you already have JVCL installed, uninstall it and delete the contents of the "jvcl" folder. If not, create a folder called "jvcl" somewhere on your hard disk.

4. Right-click on the "jvcl" folder and click "GIT Clone..."

5. Paste this link into "URL of repository" and click "OK": https://github.com/project-jedi/jvcl.git

6. Run jvcl\install.bat

That's it!

And anytime you want to get the latest changes, right-click on the "jvcl" folder and click "GIT Sync..." or "GIT Pull...". Note: after updating, you should always run jvcl\install.bat.

Utilities to make life easier

These utilities are not necessary and you can skip this section if you want. I personally prefer to use these instead of the built in TortoiseMerge.

WinMerge: Great for visually comparing files and for seeing changes between revisions of a file (Diff). In TortoiseGIT Settings --> Diff Viewer, use the path: C:\Program Files\WinMerge\WinMerge.exe /e /ul /wl /dl %bname /dr %yname %base %mine

P4Merge: Great for visually merging changes and resolving conflicts that occur from parallel or concurrent development. P4Merge can be downloaded for free as a part of the P4Win Installer package. In TortoiseGIT Settings --> Diff Viewer --> Merge Tool, use the path: C:\Program Files\Perforce\p4merge.exe %base %theirs %mine %merged

What now?

To submit bugfixes/changes to us, create a patch file and upload it to our IssueTracker.

If one of our developers asks you (or calls for people) to test a branch, you can learn about branching here.

If you want to learn more about TortoiseGIT or Git, read the TortoiseGIT help file or read the latest version of the GIT Book.

Troubleshooting

If you encounter any other problems, go to the jedi.jcl or jedi.jvcl newsgroup on forums.talkto.net.

If, while running the JVCL's install.bat, you get the error "JCL is required but not installed.", check the registry entries under HKCU\Software\Borland\BDS\4.0\Jedi\JCL. If they do not match your JCL installation (e.g. you have renamed the folder where you installed it), either correct these entries or just install the JCL again.