Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Ask Slashdot: How Best To Synchronize Projects Between Shared Drive and PCs?

timothy posted about a year ago | from the phrase-your-answer-in-the-form-of-a-cookie dept.

Data Storage 238

Koookiemonster writes "Our company has many projects, each one with a folder on a Samba drive (Z:\). Our problem is syncing only the programmers' current projects (~30 at any time) between Z:\ and their C:\Projects\-folder on five Windows 7 laptops. If we sync the whole Z:\-drive, our projects folders would be filled with too many subfolders, making it difficult to navigate. The folders contain OpenPCS projects (PLC) and related files (Word, Excel, PDF documents); a common project folder is 50 MB. Is there any easy to use, low-budget sync software with scripting, so that we could e.g. only sync folders that exist locally?" (Read more details, below, of what Koookiemonster is looking for.)"Many programs do support selective sync, but choosing what to sync is awkward; projects and who works on them change daily. It is important that subscribing to a project is as easy as copying it from Z:\ to C:\projects\. The Z:\-folder with all of our current and past projects is located on a desktop PC running Ubuntu Linux. It can share files e.g. via Samba or FTP. All PCs are on the same (W)LAN. Off-site backups of Z:\ are taken care of via rsync. The company has three programmers, who usually handle their own projects alone, but very often others need to add files to projects. Bigger projects need more programmers. Currently we use FreeFileSync with a custom piece of Javascript to make batch files that synchronize e.g. folders C:\projects\123_ProjectName\ and Z:\123_ProjectName\ if the local folder exists. However, that solution lacks versioning, real-time sync and deletion support. It only syncs when we press a button, and then older files are overwritten by newer files (two way sync; older files go to a "sync-deletions"-folder).

PS. Bonus points for solutions that allow renaming project folders without renaming them on all laptops."

cancel ×

238 comments

Sorry! There are no comments related to the filter you selected.

BTsync? (2)

pete.zhut (911571) | about a year ago | (#44809853)

I don't know if this will do everything you need, but I have been using it at home to backup three machines to my NAS. Seems to work quite well.

stop trying, use git instead (5, Insightful)

Anonymous Coward | about a year ago | (#44809859)

you are welcome

Re:stop trying, use git instead (5, Informative)

camperdave (969942) | about a year ago | (#44810023)

stop trying, use git instead

... or one of the many alternatives [wikipedia.org] .

Re:stop trying, use git instead (0)

Anonymous Coward | about a year ago | (#44810859)

Please use source control, but avoid git like the plague. It's a pile of crap for day-to-day development, but for what Linus does it's fantastic.

Re:stop trying, use git instead (0)

Anonymous Coward | about a year ago | (#44810985)

Please use source control, but avoid git like the plague. It's a pile of crap for day-to-day development, but for what Linus does it's fantastic.

A better course of action would be to evaluate the various choices available to you for source control and make your own decision about which one to use.

But ultimately, yes. Use source control.

Re:stop trying, use git instead (1)

Anonymous Coward | about a year ago | (#44810141)

You'll have to excuse him, he comes from Windows Land :)

Re:stop trying, use git instead (1)

tippe (1136385) | about a year ago | (#44810195)

In that case, he should use Visual SourceSafe!

Bwahahahaha! Just kidding! Just kidding! I wouldn't wish VSS upon my worst enemy...

Re: stop trying, use git instead (1)

Anonymous Coward | about a year ago | (#44810345)

Agree, for my worst enemy I reserve clearcase

Re:stop trying, use git instead (2)

luis_a_espinal (1810296) | about a year ago | (#44810487)

You'll have to excuse him, he comes from Windows Land :)

Meh, I know you are posting in jest, but honestly, I've seen people from Unix-land also having no clue about source control/revision control systems. Proficient software people (Unix, Windows or whatever) know how and when to use such a system. Everybody else, well, you get what the submitter is describing :/

Re:stop trying, use git instead (3, Insightful)

Darinbob (1142669) | about a year ago | (#44810657)

That's truel However I definitely have seen the syndrome of people not acknowledging software not created by Microsoft, or asking for bizarre or counterproductive requirements (sharepoint). Most Unix users who don't understand this stuff at least tend to follow along with whatever the team uses or project manager suggests.

Re:stop trying, use git instead (2, Insightful)

GameboyRMH (1153867) | about a year ago | (#44810165)

Correct answer almost on the first post, nice work ("svn" would also have been acceptable.)

TFA is describing a horrible clusterfuck that must be replaced with proper revision control. You don't build on top of this, you KILL IT WITH FIRE!

Re:stop trying, use git instead (4, Informative)

gnapster (1401889) | about a year ago | (#44810783)

svn is appealing in this case because you can check out subdirectories of a repo without downloading the whole thing, which is more similar to his current organization.

Re:stop trying, use git instead (1)

achbed (97139) | about a year ago | (#44810957)

This. Git is great if you want to maintain a full set of everything on every system - every copy is a full backup. If you want to do selective work, then svn checkout of particular branches is the way to go.

Re:stop trying, use git instead (2)

Darinbob (1142669) | about a year ago | (#44810589)

Or just about any source code control system (most allow binaries as well). I can't think of any that don't allow syncing just files that are wanted. Further, these systems are designed to safely share the files, not just "sync"; files can be locked and made exclusive, or conflicts between multiple authors resolved, etc. This is essentially technology that's 40 years old.

Re:stop trying, use git instead (2)

Bacon Bits (926911) | about a year ago | (#44810745)

I wouldn't use git. Git requires you to always clone the entire repository. That's fine if the repository is just source code and text files, but the more binary files you have the less attractive this can be.

I still favor svn over git myself, but it just suits my workflow better than git.

Re:stop trying, use git instead (0)

Anonymous Coward | about a year ago | (#44811061)

Git is a Source Control Versioning System.
We can't use it at our company purely because we have to version binaries and other data. So, right now, the repo at head stands at about 2.5GB of files.
Needless to say, some poor new guy thought he was gonna be all like "lets use git" and we all laughed as he locked his computer trying to get it synced, and commited to his first change.

THe more binaries, libraries, and other data you need to keep in sync the more you need a proper generic version control system. We use Perforce, like most others in the industry. Mainly due to the ability to cleanly define workspaces that selectively sync (or when going to windows boxes) do file-name mappings (so README gets checked out as readme.txt )
That and because it's explicitly server-tracked (no client-side, "this file has been modified") it's quite fast. Down side is always rememebering to checkout your file before editing, otherwise tracking down a manually editted file can be a bitch.
Oh, and completely independent and random changeset integration order :| So, as features go out, changesets are merged from dev to main as required. Which ... makes for interesting times when say you're promoting on a file, change set 1, 3, 7, 8, 4, 6, 2. While in Dev, the same file (naturally) was committed in order 1, 2, 3, 4, 5...

Re:stop trying, use git instead (0)

Anonymous Coward | about a year ago | (#44811025)

One thing that people are forgetting that this is clearly a Windows-centric dev team, as such a piece of software can be no good unless it costs lots of money...

I wish these types of devs would learn how to do this properly and get out of there Windows bubble

Re:stop trying, use git instead (1)

Koookiemonster (1099467) | about a year ago | (#44811081)

OP here. Of course we have heard of version control, git and the like.

It is important that subscribing to a project is as easy as copying it from Z:\ to C:\projects\.

Does git accomplish this? Our programmers are comfortable on the command line, but our installer and CEO are not. Which solution would use you use with your mother?

easy to use

Let's imagine your mother has received a PDF document in her email, and she has to add it to the repo. Would you really make her use git? Just making her email the file to you isn't a good solution in this case.

GIT? (1)

Anonymous Coward | about a year ago | (#44809867)

What about using GIT? (or other similar versioning tools)

Re:GIT? (1)

chuckinator (2409512) | about a year ago | (#44809909)

This works great with only one caveat: most office documents are binary files (or are treated like binary files by the SCM), so you'll need to put a process in place to lock the file in question prior to editing to prevent people stomping over others' changes to them.

Re:GIT? (1)

timeOday (582209) | about a year ago | (#44809935)

Maybe, maybe not. MS Word has its own functionality to merge changes from different versions, so you might not want to lock it down. The big problem with locks is people forgetting to check things back in and locking everybody out.

Re:GIT? (1)

camperdave (969942) | about a year ago | (#44809999)

...you'll need to put a process in place to lock the file in question prior to editing to prevent people stomping over others' changes to them.

That's one of the fundamental functions of version control software. No?

Re:GIT? (1)

Atzanteol (99067) | about a year ago | (#44810375)

No. Only those that require a "checkout; modify; check in" work pattern. Git, SVN and others follow a "modify, merge, commit" pattern which requires no locking. Though SVN can be configured to "require" (more like "request") locking on binary files which would help.

Re:GIT? (1)

Darinbob (1142669) | about a year ago | (#44810781)

This is also one reason to use something other than binary only or proprietary format for documentation, or to split the documentation up into many small files. Text or basic HTML works great. Wikis or wiki-like servers are also good (though you may end up in a fight against the MS faction in IT that insists you use Sharepoint instead, at which point you're better off changing companies).

The problem with things like docx is that while it is textual it is not necessarily structured uniformly so that minor changes to a doc could require huge changes to be merged, or even slight variants in Word versions result in large document differences (docx is essentially a dump of internal state). Maybe that's fine for some people but it can result in a very large increase in required storage space.

Re:GIT? (1)

Nemesisghost (1720424) | about a year ago | (#44810229)

That's why you pair GIT with GITLab(a private/local version of GIT Hub). Or if you want to purchase something, go with RTC or JIRA. RTC & JIRA have the added advantage of issue/bug tracking, but all offer you the capabilities of adding a SharePoint/Wiki like site to your revision tracking.

Re:GIT? (0)

Anonymous Coward | about a year ago | (#44810787)

Obvious microsoft shill is obvious.

Re:GIT? (1)

achbed (97139) | about a year ago | (#44811009)

Mbvious Microsoft questioner is obvious (syncing "C:" and "Z:"?). Microsoft shill would have recommended Azure and VS2013 Cloud Services for source and revision control. Which I would never, ever do - give all my source code to another firm? Hells no. I hesitate to put anything in github for the same reason.

Re:GIT? (1)

luis_a_espinal (1810296) | about a year ago | (#44810517)

This works great with only one caveat: most office documents are binary files (or are treated like binary files by the SCM), so you'll need to put a process in place to lock the file in question prior to editing to prevent people stomping over others' changes to them.

That's typically not needed. MS Office products, for instance, have built-in diff review-n-merge capabilities. And even without such a capability, a src-controlled binary is simply that, a coarse-grained resource. Whoever commits the last is the one whose changes prevail. This is what is done with SharePoint anyways or TeamSite anyways. No need for locking.

Re:GIT? (0)

Anonymous Coward | about a year ago | (#44809933)

Why not suversion or cvs instead?

Re: GIT? (0)

Anonymous Coward | about a year ago | (#44810241)

They are vastly inferior to Got.

Nevertheless they are vastly superior to ClearCase.

Funny world...

OwnCloud is pretty good (2)

charnov (183495) | about a year ago | (#44809877)

https://owncloud.org/ [owncloud.org]

Keep the masters in a private cloud and sync to it from your PCs. Git and other multi-user SVN is an idea, too. Also, SharePoint is excellent (but lots of overhead).

Re:OwnCloud is pretty good (2)

Amouth (879122) | about a year ago | (#44810003)

I'd like to chime in on ownCloud. It works but it also doesn't

Owncloud fails in a large multi user environment over low speed connections, and with office files if the users are working in the same folder that syncs. We tried it, and for single in a folder it worked great, once we added others (especially with low speed or low quality connections, aka traveling users) it failed miserably. We had many many many conflicts for no reason. many many 0 byte files do to cross sync issues.

We ended up canning it because managing it and cleanup became too much of an issue. We now use DropBox (i know not open source and you pay) but the reality is it just works. And it has the selective sync they are looking for.

Re:OwnCloud is pretty good (1)

Idimmu Xul (204345) | about a year ago | (#44810059)

ive been playing with owncloud for the last week, it's awful, it loves just deleting all my files or corrupting them :(

Re:OwnCloud is pretty good (1)

nschubach (922175) | about a year ago | (#44810137)

I've found Bittorrent Sync great for selective syncing... You select a folder to sync and it gives you a hash that you can give to someone else who just needs that hash and they can specify any folder for those files. If you have a project wiki or something you can just put the hash alongside the project name and anyone that wants that synchronized folder can put in that hash. It does LAN syncing so it doesn't always have to hit the web, you could setup a server assign each project to a sync target and share those keys.

Re:OwnCloud is pretty good (0)

clarkn0va (807617) | about a year ago | (#44810283)

+1

Re:OwnCloud is pretty good (1)

Amouth (879122) | about a year ago | (#44811001)

I got in on the Alpha of that, but didn't have time to fully review it. I will have to go back and look at it.

Thanks,

Re:OwnCloud is pretty good (1)

transporter_ii (986545) | about a year ago | (#44810881)

We ditched OwnCloud for GoodSync. OwnCloud in theory works OK. However, if someone with a laptop is away from the Internet, it is real bad about losing all the client settings and just quits syncing. Also, in the right circumstances, it can generate a huge amount of files by versioning during collisions.

GoodSync is not perfect, either, but it is far superior to OwnCloud. Is it free? No. Work better? Yes.

In theory, GoodSync has support. I was not thrilled with it. We kind of got cross and they thought I was rude, and I think they aren't that good at support.

Pros: They have a server version that runs on Linux.

Cons: The Windows Server version costs a fortune. Spotty support for the Linux version. Support for the Linux version is basically, "Linux is hard," don't use it if you don't know what you are doing."

Revision Control? (5, Funny)

Anonymous Coward | about a year ago | (#44809889)

This sounds like the ramblings of someone who has never heard of revision control.

Re:Revision Control? (4, Insightful)

camperdave (969942) | about a year ago | (#44810061)

Maybe he's one of the Ten Thousand [xkcd.com]

Source control (0)

Anonymous Coward | about a year ago | (#44809899)

Just use git.

Version Control Systems (0, Interesting)

Anonymous Coward | about a year ago | (#44809903)

None of the programmers have ever heard of version control systems???

Version control is for pussies (0)

Anonymous Coward | about a year ago | (#44809913)

Best to come up with a complex set of automated perl scripts (and batch files so your windows friends feel at home, too) using cron jobs or windows tasks to manage everything for them.

Re:Version control is for pussies (1)

steak (145650) | about a year ago | (#44809997)

I like your idea, but it needs some pizzazz. I think if you make a thousand chimps on teletypes write the scripts you'll get the effect you want.

A Small Voice In the Wilderness Calls Out (4, Informative)

the eric conspiracy (20178) | about a year ago | (#44809923)

USE VERSION CONTROL!!!!

Git
Mercurial
Perforce
Subversion
Vesta
CVS
ClearCase
VSS
StarTeam

The choices are legion. What you are doing is not a choice.

Pick a version control system and your life will be much easier (after the learning curve).

Re:A Small Voice In the Wilderness Calls Out (1)

Dieppe (668614) | about a year ago | (#44810129)

USE VERSION CONTROL!!!!

Git Mercurial Perforce Subversion Vesta CVS ClearCase VSS StarTeam

The choices are legion. What you are doing is not a choice.

Pick a version control system and your life will be much easier (after the learning curve).

I think this story can be closed with this post right here. Version Control, end of story. P

Re:A Small Voice In the Wilderness Calls Out (3, Funny)

Anonymous Coward | about a year ago | (#44810377)

Why close? We can now start the entertaining flamewars about which version control software is the only reasonable one! ;-)

Re:A Small Voice In the Wilderness Calls Out (0)

Anonymous Coward | about a year ago | (#44810133)

Any of those but ClearCase. What an awful tool.

Re:A Small Voice In the Wilderness Calls Out (1)

luis_a_espinal (1810296) | about a year ago | (#44810535)

Any of those but ClearCase. What an awful tool.

It's not great (not my first choice), but it is not that awful either. I like the concept of a vob and the powerful access control models that come with it. It's just the idiotic complexity of attributes and objects in ClearCase that uglifies it.

Re:A Small Voice In the Wilderness Calls Out (1)

Anonymous Coward | about a year ago | (#44811361)

We're still old school CVS and SVN users but are starting to use Git. Many of the devs use it for other projects and it works quite well for our workforce (8 devs in four timezones).

Re:A Small Voice In the Wilderness Calls Out (4, Informative)

the eric conspiracy (20178) | about a year ago | (#44811379)

I've used many of the above. Here are some comments (the first four are free):

1. Git - really capable tool, with opaque command model. Maybe not for newbs. Managers hate using it (one reason to like it). Has good cloud support with GitHub.

2. Mercurial - pretty easy to use. Great if your projects don't have large binary files. It's a good introductory decentralized repo tool.

3. Subversion - pretty good if you want a centralized repo.

4. CVS - your father's version control system. Still way better than not having version control.

5. ClearCase - good in the hands of a ClearCase specialist. Would not be my choice for a small team of version control newbs.

6. VSS - My experiences with it were not good. I hear it's improved. I'd look at it ONLY if I was in a Microsoft only shop.

Wow, Windows is really still that bad? (-1, Troll)

femtobyte (710429) | about a year ago | (#44809929)

Having no need for Windows, I really don't keep up with its capabilities. But, really, this is the year 2013 --- Windows is still that pathetic, that basic tasks like syncing files between multiple computers take special software that doesn't just come with the OS? Why is anyone still using that crap? Are corporations really so utterly incompetent on IT issues that they'd put up with shit like this because they don't know any better?

Re:Wow, Windows is really still that bad? (0)

Anonymous Coward | about a year ago | (#44809985)

But, really, this is the year 2013 --- Windows is still that pathetic, that basic tasks like syncing files between multiple computers take special software that doesn't just come with the OS?

Largely, yes.

Microsoft would rather sell you Sharepoint than put anything like that into Windows.

Re:Wow, Windows is really still that bad? (0)

Anonymous Coward | about a year ago | (#44810071)

Um. Have you not looked into volume snapshots or sync center? Both features of the OS. Personally I don't like to use things like that because I like to be in control of any replication conflicts so largely if I need to do anything like that I use robocopy, which is also part of the OS.

Re:Wow, Windows is really still that bad? (0)

Anonymous Coward | about a year ago | (#44810089)

Actually Windows is really good at this.

This guy is just trying to pretend that it's still 1999.

Re:Wow, Windows is really still that bad? (1)

Anonymous Coward | about a year ago | (#44810113)

Windows Sync Center http://windows.microsoft.com/en-us/windows-vista/sync-center-frequently-asked-questions/ [microsoft.com] is a functioning offline file sync built into the OS since Vista with other capabilities coming in as early as Windows 95/NT4. Good to know that you just don't care and can't be bothered to add a suggestion, though.

Re:Wow, Windows is really still that bad? (2)

mrbene (1380531) | about a year ago | (#44810183)

Robocopy ( http://technet.microsoft.com/en-us/library/cc733145.aspx [microsoft.com] ) is included in all desktop versions of Windows (so, not RT or Phone). Extensive copying/moving/mirroring options, CLI-only. Great for integrating into scheduled scripts.

I'd still agree with other poster here, and recommend git over Robocopy to the OP. However, Windows does have a robust tool for syncing files between multiple computers built in.

In fact, Robocopy has been available since Windows NT 4.0 [wikipedia.org] .

Re:Wow, Windows is really still that bad? (1)

luis_a_espinal (1810296) | about a year ago | (#44810567)

Having no need for Windows, I really don't keep up with its capabilities. But, really, this is the year 2013 --- Windows is still that pathetic, that basic tasks like syncing files between multiple computers take special software that doesn't just come with the OS? Why is anyone still using that crap? Are corporations really so utterly incompetent on IT issues that they'd put up with shit like this because they don't know any better?

Dude, even on Linux, you need special software to synch files (rsync, git, whatever.) Since file synching is an app-specific functionality, this is not a OS problem. This is an operator problem, and I've seen Linux/Unix sysadmins doing the same kind of crap job as the one described in the original question/article/whatever.

This is a solved problem on both Windows or Linux/Unix. But incompetent IT staff exists on both domains. You can't defensively program against stupid (nor should you.)

Git (1)

Anonymous Coward | about a year ago | (#44809939)

Git is all you need

Not sure if he is looking for version control (1)

simoncpu was here (1601629) | about a year ago | (#44809969)

Not sure if he is trolling, or if he has deeper issues that can't be solved with version control systems like git or hg (or even good 'ol CVS!).

Re:Not sure if he is looking for version control (1)

Darinbob (1142669) | about a year ago | (#44810889)

I wonder how a company even gets into this situation. Granted, I don't think many schools teach the fundamentals of how to actually manage a project but I think even in the greenest of startups there should be at least ONE person who's held a real job before and has seen this. Nothing here is new. SCCS was started in 1972. Having multiple programmers on a project has existed since computers were invented.

My guess is that you get some clueless business oriented guy making a startup ("I'll get rich, my idea is Brilliant!") who then hires the cheapest/dumbest employees he can (he has no money to pay them but lots of worthless equity). So idiot in charge of the company and the actual workers are straight out of school and have never seen an actual professional programming team. The whole thing is probably run like a college programming class assignment.

The Joel Test (1)

Anonymous Coward | about a year ago | (#44809977)

Maybe you should give your team the Joel Test [joelonsoftware.com] . I think you want source code control. Maybe subversion or git?

Subsetting a repository of files (4, Informative)

Empiric (675968) | about a year ago | (#44809981)

Sounds exactly like what an RCS like Subversion is good for.

Each user pulls down the directories relevant to him/her from the overall repository, updates at will from the central source, and pushes up changes at will with a couple of mouse clicks.

TortoiseSVN will even give you handy little icons on your local folders in Explorer to tell you if what you have in your local directory isn't synced with the central server, and it's two clicks to make that happen. I actually think you don't want to "force synchronization" on an ongoing basis, seems like a great way to overwrite a lot of your developers' (and others') ongoing work.

Re:Subsetting a repository of files (0)

Anonymous Coward | about a year ago | (#44810251)

How dare you provide a reasonable and helpful answer?!?! You must be PURGED!

Re:Subsetting a repository of files (2)

Empiric (675968) | about a year ago | (#44810303)

Hey, I get enough attempts at that here just from being theist. ;)

Re:Subsetting a repository of files (1)

scrib (1277042) | about a year ago | (#44810401)

Yours is the answer I wanted to write and is the solution I've used for just such situations. However, it violates one of the first ridiculous requirements: "It is important that subscribing to a project is as easy as copying it from Z:\ to C:\projects\."

Koookie, that may be an easy way to copy files, but it is a miserably difficult way to manage projects - even for developers. SVN takes a little time to set up and understand and requires maybe a day's worth of training for any developer who hasn't used source control before (eg some college kids). As you can tell from the chorus, version control is worth it. It is absolutely crazy to try to do what you are describing without it. Give up the absurd "easy as dragging and dropping" requirement and use the tools of the trade.

Re:Subsetting a repository of files (1)

djmurdoch (306849) | about a year ago | (#44810683)

If the admin keeps Subversion working copies of each project in Z:\, then developers can indeed just copy the top level directory of each project from Z to C and get their own working copy.

Why not use source control? (2)

gmezero (4448) | about a year ago | (#44809987)

We used to use ViceVersa Pro to sync our team but eventually moved over to Plastic SCM which has been friggin' awesome. It not only supports code, but also art assets. Plus it has the best support for branching. One team can be working on a branch specific to one project, while another works on a second branch while the main trunk stays clean and build-able. You can even have developers run their own local repository on their desktop/laptop and have them replicate/merge either on a schedule or when they connect to the LAN (if they work offsite alot).

You only bring stuff back to the main trunk when you're ready to merge a branch back in. You can even merge branches separate from the trunk. We check everything into it, code, art, and our Doxygen output. It's been a time save on orders of magnitude.

Not trying to be a sales pitch, but you should check it out.

How about not doing that? (0)

Anonymous Coward | about a year ago | (#44810001)

I don't know why you would want to do that. You're going to have sync conflicts out the wazoo. This is why I tell everyone on my team to work directly off the file share or Sharepoint and NOT to store things locally. The only argument for not doing this is being lazy. Not wanting to map the drive or go to the URL. I've also found that since they copy documentation locally they have no idea that its even been updated it because they just look at their local copy.

LFTPFS (0)

Anonymous Coward | about a year ago | (#44810027)

mirror --missing-only

A smart cache that updates local files as needed.

Re:LFTPFS (0)

Anonymous Coward | about a year ago | (#44810043)

--cache=/dir/to/use

whoa man, like renaming project folders without renaming them on all laptops and stuff too !

What you want is revision control (0)

Anonymous Coward | about a year ago | (#44810031)

Another vote for revision control. svn, git, whatever, it doesn't really matter for this small of a problem - pick an interface you think people can manage. People checkout what projects they want, make changes locally and check in the updated or new files.

The common/central area (samba Z:) can be a space that is updated from the revision control system. The simplest way is to have it automatically update every day/hour/etc. You can be more formal and have some process (verification/signoff/etc.) that needs to happen before something is officially put in the common/central area.

Don't try syncing files (4, Informative)

MobyDisk (75490) | about a year ago | (#44810079)

Syncing files like this is a mess. Perhaps you should look beyond share drives. You are trying to solve the technical problem, but if you step back you might see a business problem. Consider 3 alternative approaches:
1) Keep the files on the share drive and do not mirror them locally.
2) Use a source control system (Ex: GIT, TFS, Subversion)
3) Use a groupware / content management system / document management system. ( Ex: Sharepoint, Confluence, QDMS, Lotus Notes, Microsoft Exchange, Drupal, SAP, Groupwise)

Knowing the right terms helps find the software you need. Here are some links to Wikipedia which has the right terms, and some lists of software:
http://en.wikipedia.org/wiki/Content_Management_Systems [wikipedia.org]
http://en.wikipedia.org/wiki/Document_management [wikipedia.org]
http://en.wikipedia.org/wiki/List_of_collaborative_software#Comparison_of_notable_software [wikipedia.org]

Unison (0)

Anonymous Coward | about a year ago | (#44810095)

Unison is a great tool for this

Wahwah (-1)

Anonymous Coward | about a year ago | (#44810121)

Do my job for me but don't expect to get paid!

Fuck off.

Find a better place to work your IT department is (0)

Anonymous Coward | about a year ago | (#44810123)

run by an idiot

Source control (best) or Offline Files (okay) (1)

FreelanceWizard (889712) | about a year ago | (#44810143)

You have programmers. You have multiple projects. They might be working offline. For this, you really need a Distributed Source Control system such as git or mercurial. I personally recommend mercurial as it's got good Windows tools (TortoiseHg and HgScc for Visual Studio integration). You can put your "pure" repository on your share, then have the programmers push to it -- or, better yet, have an "incoming" for each project to which anyone can push, then a "pure" to which only project leads have write access and into which they can push approved versions.

If, for some reason, you simply can't run source control, Windows offers Offline Files functionality that can sync individual folders if you set them up correctly. What this means is that you need to ditch this "shared drive" concept and set up your file shares correctly -- by which I mean having multiple shares, one for each project. Users then connect to the share in question and choose to make it offline, or you create drive maps and enforce offline files using group policy.

My suggestion: hire programmers (1)

sideslash (1865434) | about a year ago | (#44810151)

If you hire experienced, competent programmers, they will be able to solve this issue for you. First they will suggest using version control (it seems frighteningly likely from your writeup that you're not currently using it). Probably git, but there are other good ones.

At that point the problem will become redefined. What you want is a script that:
- Iterates through the local working directory.
- Finds project folders that are NOT being worked on, and are also currently clean (no uncommitted files), and deletes them.
- Finds projects that need to be there and aren't, and git-clones them.

A competent programmer can write a script like this. And beyond that, for many reasons it should be the programmer's responsibility to commit stuff day to day. Also you may want to switch to a text file documentation format to eliminate merge conflicts in binary files (Word, Excel). Maybe you wanted a different answer, but I'd like to think that you're on the wrong site for that.

Powershell or cmd (0)

Anonymous Coward | about a year ago | (#44810153)

Version Control is the "right way" but if you'd rather blaze your own trail, something like this should work :
Powershell :
$dir = Get-ChildItem $local_dir -recurse | Where {$_.psIsContainer -eq $true} | select -Expand FullName
write "dir is: "
write $dir
  foreach ($i in $dir) {
write-host "Copying Files from \\path\to\share to $dir " ;
            copy-item \\path\to\share -Destination $dir
}
write-host "done syncing files";
exit;

or .bat/.cmd --
for /f "delims=" %%var IN ('dir /b /s path\to\localdirs) do (
xcopy \\share\path path\to\local\dirs
)
both of these are untested in this format, but it should be enough to get you started

It's sad (5, Insightful)

msobkow (48369) | about a year ago | (#44810223)

It's sad to see an entire team of supposedly "professional" developers which have never heard of version control.

You can't even blame it on the Windows environment -- MSVS supports hooks for several version control systems either natively or through plugins/addons.

This whole story just reeks of some manager saying "We can't afford to set that up -- it would take too much time" any time someone has suggested it.

Because I flat out refuse to believe the entire team doesn't know any better.

Re:It's sad (2)

Freshly Exhumed (105597) | about a year ago | (#44810533)

As soon as I saw all those drive letters in the guy's summary I just knew where this was going... very sad indeed when coders don't have a clue about the tools that obviously suit them best.

Re:It's sad (1)

jon3k (691256) | about a year ago | (#44810653)

Me thinks no one asked the programmers. Some IT helpdesk guy is trying to solve it.

Re:It's sad (0)

Anonymous Coward | about a year ago | (#44810967)

I have been through this before with a previous employer. We were having occasional version control issues because of our manual procedures. New features would accidentally get removed or stale code would get reinserted. You know... the usual stuff when you don't have structured version control. Things weren't so bad when one person (me) was the "gatekeeper" AND "key master", but once other developers began working on the same project independently and in parallel, things went downhill quickly.

Of the several software/firmware developers at that company, I felt like I was the only one interested in fixing those issues. The engineering manager was also against version control systems because of stories he had heard from other sources. I was, at one point, tasked with finding a version control solution. I identified something I believe would work. Nothing ever became of it. I eventually gave up the fight. I have since moved on from that company.

Long story short... there is probably a version control solution that will work for the OP. It is worth the investment to switch to something more formalized.

SFFS (2)

zzsmirkzz (974536) | about a year ago | (#44810269)

If you don't want to do Version Control as others have suggested then I recommend Super Flexible File Synchronizer. It is a great product with lots of options in regards to what does and does not get sync'd. It is inexpensive to boot. http://www.superflexible.com/ftp.htm [superflexible.com]

rsync (0)

Anonymous Coward | about a year ago | (#44810305)

OK, you really should be using git (or if you don't like git, $FAVORITE_REVISION_CONTROL_SOFTWARE) for this sort of collaboration. But I'm assuming you know that, and don't want to anyway, for reasons (be they good or bad) that we don't know about, can't judge, and aren't likely to change. So we'll ignore that, and go for a non-RCS solution...

Off-site backups of Z:\ are taken care of via rsync.

So you already know it exists, why are you even asking us?
cd /cygdrive/c/projects
for dir in $(ls -d */) ; do
    #bonus points magic would go here...
    rsync -rut ${dir} /cygdrive/z/${dir}
    rsync -rut /cygdrive/z/${dir} ${dir}
done

OK, probable changes:
* you'll probably want some different rsync options there -- particularly you likely want -b and friends so rsync backs-up local files (i.e. moves them to a separate directory before renaming the just-received version over -- there's basically zero performance impact) in case someone else committed a newer update to the Z drive, and you need to resolve the collisions. (An RCS keeps you from shooting yourself in the foot like this, but keeping a local backup of every file you overwrite from Z drive is at least a ready supply of bandages and betadine.)
* you might want to access the remote system (you said it's a *n*x box) directly by running an rsync server on it, instead of going through the local SMB/CIFS filesystem layer.

And obvious limitations:
* you need to make sure all clocks are in sync
* you need a working bash and rsync -- I've assumed you use cygwin above, where such stuff will work fine. If you don't like cygwin, you can probably get a standalone Win32 version, but I've never gone that route, so I don't know what if any limitations you'll encounter.
* I'm not going for the bonus points. It's eminently doable, but there's several ways of approaching it, and even if I could be bothered to do one, it's likelier not the most suitable for your conditions. Hint: consider dropping a file of the same name in every directory, with unique (random, timestamp, hash from the directory's original name, whatever) contents, or a file with a recognizable naming pattern with a unique part (e.g. ..project-id-*, where the * is replaced with the unique part). Upon detecting that a directory disappeared, look for the matching unique token to find the new one.

If you can't use version control... (2)

neminem (561346) | about a year ago | (#44810359)

I suggest finding the person who says you can't use version control, and locking him in a room until he either changes his mind or ceases to be a problem. Then, use version control.

rsnapshot, rsync. (1)

Janek Kozicki (722688) | about a year ago | (#44810365)

http://www.rsnapshot.org/howto/ [rsnapshot.org]

Well, actually probably rsync will be sufficient for your needs. And rsnapshot is probably a little more than your needs. I suppose that only thing you need to configure is a rsync server on windows, a nice writeup you will find here: http://www.stillnetstudios.com/snapshot-backups-howto/ [stillnetstudios.com]

I recently used this to configure my wife's windows PC, so that it will work with rsnapshot, and backup all her projects. After configuring rsync server on windows, the rsync operation works seamlessly. Whether you will use just rsync, or complement it with rsnapshot is up to you.

How can I attach 10 horses on my buggy? (0)

Anonymous Coward | about a year ago | (#44810373)

Drop the darn buggy and get an horseless buggy. The Windows Guru is bing serious but this is probably the most amusing post I have seen in a long time.
He also gives "Bonus points", ha,ha,....

What are your programmers doing? (3, Funny)

damn_registrars (1103043) | about a year ago | (#44810469)

You said you have programmers working on these projects. They probably each have their own preferred way to do this, why not ask them? If they can't come to a consensus, you could have them write their own solution.

Re:What are your programmers doing? (1)

Bengie (1121981) | about a year ago | (#44810551)

If they can't come to a consensus, you could have them write their own solution.

If they couldn't do the first part, then they're probably not smart enough to do the alternative.

TortoiseSVN (1)

bob.lansdorp (2954263) | about a year ago | (#44810483)

You are welcome :)

why not use (0)

Anonymous Coward | about a year ago | (#44810489)

http://labs.bittorrent.com/experiments/sync.html

Reinventing the wheel. (0)

Anonymous Coward | about a year ago | (#44810541)

Syncing content from a central repository to multiple clients ... if only someone out there has already experienced this problem and built a solution.

Distributed source control. (1)

stewsters (1406737) | about a year ago | (#44810687)

Use Git.

An analogy. (5, Funny)

pclminion (145572) | about a year ago | (#44810803)

"I'm a contractor. I have a team of carpenters who are tasked with building a house. It seems this is going to require the driving of a large number of nails. My team of carpenters would like to know what sort of tool or mechanism would work best to drive these nails. Right now, we have one guy who holds the nail while another guy hits it with his thermos. This does eventually drive in the nail, but 90% of the time the nail bends, and it's denting our thermoses. I wonder if there exists some genius, super-carpenter bad-ass out there who might be able to suggest a better way."

git-annex (2)

Horus107 (1316815) | about a year ago | (#44810843)

I second git. git scales badly with large files. If this is a problem, you could have a look at git-annex http://git-annex.branchable.com/ [branchable.com] The concept needs some time to grasp, but it's really powerfull.

DO NOT USE GIT! Or you will be sorry. (2)

Kaz Kylheku (1484) | about a year ago | (#44810877)

Git is absolutely not a good first version control system for people who are clueless about version control. (Such as, evidently, your developers).

Git requires prior experience with at least two simpler version control systems. In git, you often run into scenarios that require you to understand its complicated repository representation so that you can choose the best steps to unravel them, based on understanding the ramifications of each approach.

The implementation of git is not hidden from the user behind a robust set of "no brainer" use cases.

The decentralized model alone will confuse the heck out of workers with no prior version control experience.

Use a system that has a centralized server from which working copies are checked out, like Subversion.

recommendations (1)

hypergreatthing (254983) | about a year ago | (#44810983)

SVN or Git for code repository. Easy to set up, lots of windows and linux tools, command line based even if you want that.

However for documentation, i recommend confluence, or the many free wiki based collaborative solutions. This allows people to post on a wikipedia like site their documents. They become automatically searchable, people can collaborate in the documentation with version control built in. Confluence allows you to drag and drop ppt, import and export word documents, drop excel files in there or anything else it recognizes. The idea of single user word documents and passing around outdated versions is old and retarded.

Who are you? (0)

Anonymous Coward | about a year ago | (#44811019)

How the fuck does a developer not know about source control? Is this a fucking joke?

Version Control or Cloud (synced) Storage (-1)

Anonymous Coward | about a year ago | (#44811209)

A version control system like GIT is definitely the way to go here. Failing that I would recommend using synchronized shared folders from any of the popular cloud storage providers.

I use Ubuntu One cloud storage for sharing *non code* files (documentation, release binaries, etc.) among developers and testers. This is a free service that grants 5GB to each users, plus additional storage for referals (both the referee and referer get an extra 500MB). Here is my (shameless plug) referral link [ubuntu.com] that you can use to start off with extra space. There are clients for all the major operating systems (Windows/Mac/Linux/Android/iOS). The automatic synchronization is great and I've never had any problems. You can choose which folders you want to share (not everyone has to see the full list) and can also set granular level user permissions if not everyone needs to have write access.

There is also Synkron (1)

nashv (1479253) | about a year ago | (#44811341)

The obvious "Use Version control/Git" is actually and improvement of your methods.
Here is an actual to the point answer to your question about software. A requirement of real time-sync was mention.

There is Synkron [sourceforge.net] (has a scheduler) , OneSync [google.com] (has real time sync), and Unison [upenn.edu] (uses rsync).

All are open source and free. Have fun.

Load More Comments
Slashdot Login

Need an Account?

Forgot your password?

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>