Over a million developers have joined DZone.

Using a Virtual Drive in a Project with Multiple Branches

· Java Zone

Discover how AppDynamics steps in to upgrade your performance game and prevent your enterprise from these top 10 Java performance problems, brought to you in partnership with AppDynamics.


How many branches does your project have? I am working on a mature project with many branches supported simultaneously, and it is always headache for me when I am trying to fix some bugs that affect many versions of our project.

To fix a bug in some branch before, I had to copy an existing Intellij Idea project, configure it to a different path location (checked out from VCS to separate folder), and, after some tedious manipulations, the project was ready.

I am using Windows for development. It has this command: “subst - Associates a path with a drive letter”.  I knew about this command, but recently the brilliant idea had occurred to me. Why do I not use this command to simplify my life.

For example

  1. You check-out some file from VCS to you local drive, e.g. C:\Users\user_name\7_0-012
  2. Execute subst X: C:\Users\user_name\7_0-012 -have virtual drive pointed to root of folder C:\Users\user_name\7_0-012
  3. Create an Intellij Idea project with the source path pointed to created virtual drive
  4. If you need to switch to another project, you just execute “subst X: /D” – delete the virtual drive and then subst X: C:\Users\user_name\6_0-01. You are ready to edit source from another branch     

Of course there are some problems with third party libraries that you are using, but this depends on your dependency management system. In my case, the list of third party libraries is stable, at least for versions I support. Also I am not sure how to make the same on Unix  


The Java Zone is brought to you in partnership with AppDynamics. AppDynamics helps you gain the fundamentals behind application performance, and implement best practices so you can proactively analyze and act on performance problems as they arise, and more specifically with your Java applications. Start a Free Trial.


{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}