Friday, May 23, 2008

Hobocopy Needs a New Daddy (or Mommy)

I enjoy the process of sharing some of my work as open source. One of my more successful efforts in that area has been Hobocopy.

 

Like most (really, all) software, it's not done. There are any number of things I'd like to add to it, and I still get occasional requests from people for enhancements or bugfixes. But, due to one thing and another, I just haven't been able to get around to doing any work on it for months. So I'm asking you, dear LazyWeb, if you know of anyone who would be interested in adopting this poor, neglected, digital offspring of mine. 

 

I'm open to whatever arrangement that maintains the MIT nature of the license, so if you'd rather move the code somewhere else or transfer the copyright, that's cool with me. Or we can keep it where it is and I can set you up as a contributor.

 

Hobocopy is written in C++. Not very good C++, mind you, but C++ skills are still required. Although with sufficient work, we could probably factor out the bit that needs to be in C++ and rewrite everything else in C#. I'm happy to help with design direction via email, I just don't have time to hack.

 

Anyway, let me know if you're interested. It's a good tool and I'd love to see someone pick it up and move it forward.

19 comments:

  1. How does this work? Does it work at all? All I can see is a brief flash of a command line (I think that is what it is) and then... nothing. Woild like some detailed instructions.

    ReplyDelete
  2. It is, as you guessed, a command-line tool. Generally, command-line tools are invoked either from a command shell (Start->Run->cmd.exe) or from a script of some sort. Hobocopy has no GUI, and as such isn't really intended to be used by simply double-clicking on it.

    Yes, the documentation sucks. Sorry about that. To get started, try firing up cmd.exe and doing something like this:

    hobocopy /r C:\directory\I\want\to\copy\from C:\directory\I\want\to\copy\to

    Obviously, replace those fake directories with the ones you want to use. You can run hobocopy /? to get a bit more detail.

    ReplyDelete
  3. hobocopy not recognized as an internal or external program or batch file?

    ReplyDelete
  4. Hobocopy needs to be somewhere Windows can find it. Either change to the directory hobocopy is in or put in in your PATH somewhere.

    ReplyDelete
  5. what happened to this?
    and:

    OPINION: make this in c# means cut off with all win2000 / XP without .NET pack ...

    ReplyDelete
  6. I certainly would have preferred to do it in C#, but unfortunately a bug in the COM objects that are required to make shadow copies make that impossible. The best one could do would be to wrap the API with a C#-friendly C++ layer. But as I stated, even if I thought that was worthwhile, my available time does not allow me to do that right now.

    ReplyDelete
  7. it took a few attempts before i fully understood that hobocopy.exe needs to be in the base directory of my C:\ drive, and that i could not copy a specific file from my temp file, rather i had to copy the whole folder and sort through that. This was no big deal and the program has done EXACTLY what i needed in the end!!

    I thank you very much craig!

    ReplyDelete
  8. Hobocopy worked fine untill I reinstalled windows to my other partition it now refuses to work the same way it did before, wont copy at all.

    Eg. hobocopy is now in my other partition I call it from there, it fires up and everything but just says 0 files copied.

    ReplyDelete
  9. Same operating system? Is the Volume Shadow Service running? What happens if you run it with the /verbosity=4 switch?

    ReplyDelete
  10. FYI.. Works with Windows 7. Just had to copy: HoboCopy.exe & HoboCopy.pdb to C:\Windows\System32. Once copied, commad.exe was able to see the HoboCopy tools.

    ReplyDelete
  11. I had trouble getting it to work, but have prevailed using Server 2003, 2008. BTW Joshi you can specify a filename within a folder and copy just one file. I am a SysAd, not a programmer. Hobocopy is the best solution I have found for backing up files that are locked (ie. QuickBooks). It would be nice if it worked out of the box on all standard systems. Thanks for sharing Craig. I hope someone steps up to help.

    ReplyDelete
  12. I have an XP system with all updates and service packs. I am trying to get Hobocopy to copy my "c:\documents and settings\*.*" to an external drive, d:\. No matter what I do, with or without " ", it insists on trying to copy "c:\documents" to "and" and ignores the rest of the command line. What am I doing wrong?

    Thanks

    ReplyDelete
  13. I don't think you're doing anything wrong. IIRC, there's a bug in Hobocopy around dealing with paths with spaces in them. A workaround is to use subst or linkd to create an alias to the directory you want to back up. E.g.

    subst t: "C:\documents and settings"
    hobocopy t:\ D:\

    ReplyDelete
  14. RRow and Craig,

    Another easy solution is to use DOS like alias names reducing long names to 6 characteres + "~1" (as "1" the sequence of similar names).
    I.e. instead "C:\documents and settings", use "C:\docume~1\..."
    instead "C:\Program Files\Apple Software\...", use "C:\Progra~1\AppleS~1\...

    Here a full example:

    hobocopy /recursive /incremental /statefile=C:\Backup\LastBackup.dat /verbosity=0 /y /skipdenied C:\Progra~1\HIMSA\NOAHSy~1\Database C:\Backup\DataBackup\Noah

    ReplyDelete
  15. Well, my efforts to find someone else to work on Hobocopy pretty much failed, but that's okay: my new job lets me have time on Fridays to work on open source. So, as part of my effort to actually put some (not much, but some) time into Hobocopy, I'm moving it to GitHub, and I've started a mailing list at hobocopy@googlegroups.com. I'll direct future conversations there, since the comment thread on a blog post is a pretty bad medium for a support forum.

    ReplyDelete
  16. I have been unable to get long file names with spaces to work using subst. Using the drive letter created by subst on the command line with hobocopy causes COM failure 0x80042308 - .\HoboCopy.cpp (349) However, using the psuedo names such as c:\documen~1\username\my~\ does work. Working and failing command lines are identical with the exception of the source .

    ReplyDelete
  17. @GLotridge: sorry to hear you're having problems. I'd like to direct discussion to the mailing list, which is accessible at http://groups.google.com/group/hobocopy. That way everyone can benefit from the discussion. Thanks!

    ReplyDelete
  18. I use XP Home. My system can not execute HoboCopy!! and it keeps showing the same message as preceded. Please help me with that

    ReplyDelete
  19. @Amir - can you post your question to hobocopy@googlegroups.com? I prefer to answer questions there. Thanks!

    ReplyDelete