2

We are 4 friends, working on a project. Everyone works separately on a computer (Windows), and all the files are stored in a shared network drive in one of the PCs.

We want to monitor the changes made to files/folders in this drive. Changes like:

  • New file/folder
  • File/folder delete
  • File/folder rename
  • File edit/modify

and with these parameters:

  • Date/time of change
  • User (who made the change)

I googled for this issue, and found many applications. There are some problems with almost all of them:

  • Some of these applications do not record the changes of the past offline time. For example, imagine I'm not at the office (and hence the file/folder monitoring software is not running on my PC). But my friends are working and making changes to some files/folders at the shared network drive. I go to the office, and I want to know exactly which files/folders have been changed while I was out (since the last time I had run the monitoring software). Most of these applications have logs, but they only log event changes made after you run the software. They do not track the past.

  • We want to know which changes were made with which user/process/PC. Most of these file/folder monitoring applications only track the changes, and do not recognize the user, specially over a shared network.

The only software I found for this purpose is DirectoryMonitor. But its free version does not detect the user/process!

Do you know any other software?

  • If you are open to a web-based solution and mounting the shares via WebDAV: ownCloud has an activity protocol integrated, and even keeps backups of changed files (kind of simple versioning). Checking the "activity log" of my simple install, it shows "who" did "what" and "when" (e.g. "userX created/changed/deleted fileY at timestampZ"). As this is recorded by the "server", it doesn't matter whether your workstation was "online" at the time one of your friends caused the change. – Izzy Apr 2 '16 at 17:29
  • Thanks @Izzy for your comment. It's good, but I don't want to be limited to web-based reports. Because most of our data is locally stored. – Omid1989 Apr 3 '16 at 3:26
  • OK, I see. Another raw idea: Apache+WebDAV+SVN would do the versioning on a "shared drive" (again WebDAV). SVN is a revision control system, and using it via Apache with WebDAV and auto-commit you again had the versions as well as the history, and could query the latter via CLI or GUI. Not sure if Apache+WebDAV+X has another X component like Git or Mercurial working the same way. Would that be better? – Izzy Apr 3 '16 at 9:28
  • Thanks @Izzy for your comment. It sounds like a nice solution, but too complicated for me! – Omid1989 Apr 3 '16 at 11:11
2

It sounds like what you need is a full VCS, version control system, of which there are several free ones. More specifically you need a, DVCS, Distributed VCS.

With such a system each of you would have a clone locally the "master" copy to work on on your own system(s), would make your changes, commit them with a message about why you have made the current set of changes & push your changes back to the master copy.

Personally, for people not too familiar with version control systems I would strongly recommend mercurial as it is not as challenging as many other systems but still very good, doesn't have to have a dedicated central server, is gratis & cross platform. For a Windows GUI interface to mercurial there is TortoiseHG.

You can see exactly what others changed, when, and why they said that they made the change, can undo changes if necessary, etc. both from the command line and various GUI clients.

The basic command set, if you were to use hg, is shown below: Mercurial_commands_and_their_relations

By Axaluss - Own work, CC BY-SA 3.0.

One of the big advantages of such a system is that even if you are not in the office you can work on the project, making changes, adding files, directories, etc., and committing the various stages of your work and then when you are back in the office push your changes out to be merged into the history of the project and you will be alerted to, and able to address, any conflicts between your changes and those made by others.

  • 1
    Agreed, that would be a good option as well (to name an alternative: What you wrote on Mercurial basically fits Git 1:1) – but other than with a "normal file-server" used as a "shared drive" one has to explicitly check-in and push, which might be forgotten. – Izzy Apr 3 '16 at 9:24
  • 1
    @Izzy - many of the people that I deal with feel that hg is less confusing than git which is why I recommended it rather than git. – Steve Barnes Apr 3 '16 at 9:41
  • Thanks @SteveBarnes for your detailed answer. I'll try TortoiseHG, and see how it works. – Omid1989 Apr 3 '16 at 11:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.