Can I do the following without having to learn any version control systems?
- branch a codebase (to install an addon on each branch)
- merge files (merge–or rather–replace stock files with edited files if provided)
- merge files from different branches (so I can cherry-pick a combination of working addons)
I’m a user of osCommerce e-commerce CMS. And it has an addon system which are patches for the stock codebase to increase functionality and features.
The addons site hosts packages which generally contain modified files to replace the stock files and instructions if the files in question have already been modified. I’ve found it difficult to keep track of changes I’ve been doing. And I couldn’t just revert back to what it was before trying to install a new addon and edit a bunch of files.
I considered using version systems like Git or something but other than editing by following instructions, I don’t do a single line of coding myself. I signed up for GitHub thinking that I could just graphically take care of versioning, merging, etc. on their website, but the web frontend lacked those abilities or they weren’t obviously visible.
I already tried GitHub for Windows. I could ask it to clone the osCommerce repo (they develop on GitHub), and browsing to the repo it shows the last commit and diff. For the life of me I couldn’t find anyway to do the bullet points I mentioned above.
2
Answers
You could try SmartGit. You would still have to get a grasp of git basics, but the interface is about as visual and user-friendly as it gets with VCS.
The ProGit book is very good for git starters.
EDIT: to branch with SmartGit, you can use the
F7
shortcut, or go to thebranch
menu (in the middle of the options list on the very top). Selectnew branch
, in the pop-up dialog, enter the name for your branch and selectAdd Branch and Switch
. Voila, you have branched the codebase and the changes you make can be committed to the new branch.You might not want to hear it (again), but for the single purpose of sparing you lots of frustration I too advise to read up some git basics. The first 60 pages of the GitPro book would be enough. Maybe less.
Even though VCS is not for code only, all current systems have been designed by programmers for programmers. Without some basic understanding of the inner workings, you will sometimes get unexpected results. Results you will have to recover from.
GitHub does have those features.
Download GitHub for Windows (or Mac) and use the graphical interface to your heart’s desire. I don’t use any GUI for Git (because it’s easier to just run
git commit -a
then to open up a window and click buttons) but the GitHub interfaces for Mac and Windows look sleek.In order to merge code via GitHub, you need to first create a branch of the original code that you will be modifying. This is called a fork. Once you are done with the changes and wish to merge them back into the main code, send a Pull Request back to the original repository and GitHub will merge them for you.
I’m not entirely sure how the UI’s handle this, but they should be nice.