Browsed by
Tag: cross-platform

Creating a Local Version Control System

Creating a Local Version Control System

Now this is a post that is going to be updated time and again.. The very post that made me abandon my previous blog to move on to a Google site..

Need to setup a local repository.. a version control system.. Given that I use VSS (I know, please dont make faces..!) at my work place, I am used to the ‘ease’.. However it may be, it sure is simple to use…! I need the repository to be platform independent, as I dual boot into Windows 7 and Ubuntu, secondly need it to be local.. Now thats the background, next is a journal…
Which one to use?
CVS: on Ubuntu 11.4 and on windows 7.. dint find it so impressive..
TortoiseCVS: Dont know why but the options in the context menu never appeared…! :S
Mercurial: confused about its use.. yet to be tried..
Trying out git.. many friends suggest this.. seems interesting.. simple to learn, they say.. lets see!
Git setup
Alright, what helped me understand it whole was two great articles, one form tiredblogger and another from a harvard site.
Do go through them both… (And you don’t have to read this page any further! 🙂 )
Rest is for my reference, for my own understanding..
It was simple to setup..
Download and install git from the ubuntu download center… Download and install git for windows from Google code project.. Done.. Both OS set.
In windows, left almost all settings unchanged during installation..
All I need to do is to create a bare repository to start with, its better they say.. so
in a new folder:

git init --bare

Then clone it into a new repo.. That’s the working folder I guess…

git clone <prev folder> <new folder name>

Then create and add new file to this new folder.. Thats the first source file..
Then, add it to repo..

git add .

Commit the repo..

git commit -a -m "a message"

Push the updates to the main repo, which would otherwise have been a remote repository, the original one from which the working was cloned.

git push origin master

Cool enough.. Lets try new things..

Working on multiple OS
The local repository cant be directly used from both the OS.. so What I am gonna have to try is to work as if I am 2 different persons contributing to a project.. haven’t very well understood it all yet! lets see…!

Change only the origin url!

Alright.. Now, all I need to do is change only the path / url in the git config file for the head origin! Once done, the push was fine…! 🙂 so…
Is there a way to avoid this manual work???
like having 2 origins? remotes I mean..
In manual it is said that the remote path can also be passed from a file in $GIT_DIR/remotes
But does that create new branches? If so, that’ll clutter the repository unnecessarily…
lets see…

This post will be updated as and when I learn new things..!

Eclipse: Same Workspace in windows and linux

Eclipse: Same Workspace in windows and linux

I believe almost all dual booters wish for something like this.. The eclipse workspace should be independent of the operating system they are logged in..! well.. I have found a way to do it..

    The problem with using the same workspace is that ‘it doesn’t work!’ 😀 well.. the configuration of a workspace is stored in .metadata folder inside the working directory.. it has all the paths.. Most importantly, the path to JRE/JDK..! If a workspace from Windows is opened in Linux/ubuntu the java projects wont compile cause of the build path issues.. If you set it right in ubuntu, it wont work in windows..

Well..One of the solutions that works or at least worked for me is:
    Having 2 ws with all projects pointing to an external folder..!

There may be other solutions, but this is how it is done:
    Say you have a workspace under windows, now you need it to work under ubuntu..
Well.. leave alone the original workspace.. Create a new one and ‘import’ the projects from the original one.. What needs to be taken care of is: dont copy them to their default locations, that is the new workspace… You can also choose to copy the layout and other settings as well.. That way the projects will still be in the original workspace, pointed to from your new one, with all your operating specific data stored in the new workspace..! Works! You can do this for the Windows as well, keeping the ‘projects folder’ completely independent..

Problems with the approach:
The problem with this approach is that when you create a new project you need to be careful to create it in the original workspace i.e. where all other projects are.. Thats not all that difficult.. And even if you forget once, you can copy this project to the central projects location! Simple…?

What did I try it with:
Windows 7 & Ubuntu 10.10 & 11.4.
Eclipse 3.6.2 Helios

Thats it.. And you have the OS independent Workspace!! 🙂