Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Using a Virtual Drive in a Project with Multiple Branches

DZone's Guide to

Using a Virtual Drive in a Project with Multiple Branches

· Java Zone ·
Free Resource

Download Microservices for Java Developers: A hands-on introduction to frameworks and containers. Brought to you in partnership with Red Hat.

 

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  


 

Download Building Reactive Microservices in Java: Asynchronous and Event-Based Application Design. Brought to you in partnership with Red Hat

Topics:

Opinions expressed by DZone contributors are their own.

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

{{ parent.tldr }}

{{ parent.urlSource.name }}