For people having packages coming from different git/subversion repositories with their own file hierarchy not catkin-compliant and wanted to create several catkin workspaces because of these, I suggest to create a unique "central" catkin workspaces with symbolic links pointing to your git/svn repos, by this way you don't break the file hierarchy of your repos.
courrier@zbook:~/ros_ws/src$ ls -l
total 29
lrwxrwxrwx 1 courrier courrier 42 Sep 16 12:22 baxter_common -> /home/courrier/packages_ros/src/baxter_common/
lrwxrwxrwx 1 courrier courrier 48 Sep 9 19:25 CMakeLists.txt -> /opt/ros/hydro/share/catkin/cmake/toplevel.cmake
lrwxrwxrwx 1 courrier courrier 47 Sep 10 15:02 lemon_moveit_config -> /home/courrier/inria/asv1/src/lemon_moveit_config/
lrwxrwxrwx 1 courrier courrier 26 Sep 11 13:34 lemon_ros -> /home/courrier/university/lemon_ros/
[...]
Effectively the last line will "overwrite" all previously sources workspaces. You should chain your workspaces on top of each other as described in the answer from @joq and only source the leaf workspace.