From JediVcs to Git (It's possible !)

From JediVcs to Git (It's possible !)

Hi everybody,
a few months ago, I asked for the best way to migrate from JediVcs to Git.
the answers I got were not satisfying, I was told to create a new repository from now on and to keep JediVcs for history but I wanted to have all my history in one repository.

Today, we did the migration and if someone is interested, here is the story :

the facts :
- I use JediVcs since 2002 and I want only one tool to keep all my history (11600 checkins).
- JediVcs works with projects and shared modules and Git works with Directories (Repository),
- the Git module between projects is not very easy to use,

So after doing some research, I did the following
- write a Delphi tool to convert the JediVcs data into a git fast-import format,
- use one repository for all the projects and shred modules,
- keep all the checkins from the history as one commit per day and per user.

Now we have :
- one repository which we access with Sourcetree or Git Extensions or any other client,
- all the history is online so we can log or blame every unit,
- everything in the same tool.

If someone is interested, please send a mail.

Comments

  1. Now you've got a different history, by merging commits into one per day per user. Not sure how much use that will be.

    ReplyDelete
  2. for my point of view, it is useful for history, It could also be possible to create one commit per project or per unit or per directory. The method I choose seems the best for me.

    ReplyDelete
  3. When you really need to dig into something that happened in the past, you'll go back to the original repo, which I presume you are also keeping.

    ReplyDelete
  4. I will keep it for archival but not online, all the "search", "log" and "blame" options are available in Git.

    ReplyDelete
  5. Well, apart from the fact that multiple commits are merged together and can no longer be picked apart.

    ReplyDelete
  6. Yes but I made a try to have each file checkin as a commit and it is not easy to use

    ReplyDelete
  7. Hubert Bannwarth 
     I have been using JVCS for many years and am trying to port everything to a more modern VCS.  My NAS has built in SVN and Git, but I think I will prefer SVN.  I don't care too much about very old project versions since they probably wouldn't compile with modern IDEs anyway. :-)  Will your export method work with other target VCSs?

    ReplyDelete
  8. Kevin McCoy 
    I had to choose between SVN and Git and may choice was Git because of the distributed organisation (It works even if the server is down and you can rebuild a distant repository from a local one)
    The old versions of some units or projects are useful to find out when and why some modifications were made (for my usage)

    The export method can work with every file format, you will just have to rewrite the basic writing procedures.

    If you do not want the history, there are other more simpler methods

    ReplyDelete
  9. Kevin McCoy I can't believe that people are still seriously considering using svn - even for a single user git offers so much more possibilities.

    ReplyDelete
  10. Hubert Bannwarth why you don't share your tool as an open source?

    ReplyDelete
  11. Heinz Toskano 
    I can share the source, I wanted to know if someone is interested before spending time to get a clean code.

    ReplyDelete
  12. Hubert Bannwarth  I am still interested.

    ReplyDelete
  13. Kevin McCoy Ok, let me a few days to do some cleanup and I will publish the code

    ReplyDelete
  14. Kevin McCoy Heinz Toskano
    Here is the code
    github.com - hbannw/JcvsToGit
    on a Git repo of course

    ReplyDelete
  15. Hubert Bannwarth Wonderful... manuy thanks for your contribution!

    ReplyDelete
  16. Hi I'm pm'd you as I want to get my head around shared code. I normally keep my common units in a sub folder of the app they are being used in. My old VSS allowed for this and allowed me to decide when to update each of the files.

    ReplyDelete

Post a Comment