Your code is of course checked into a repository somewhere, but where do you keep your working copy/copies? C:\Program Files isn't right, as it's for installed packages. My Documents somehow doesn't seem right, either—a My Code folder next to My Music and My Pictures? Dumping in C:\ is messy, but seems to be "working" for other people in my office.




Wow. All these people who trust their code on these "hard drives". Please.

I have a batch process. It utilizes the latest Microsoft(R) Windows(R) .NET(R) FIleSystemWatcher technology. When I save, it kicks off my batch file.

My batch file then walks my directory to find all changes. It copies the modified files to my second hardrive, my USB Drive, and a floppy disk - just in case. It then scps them to a secure offsite location, and then to my home network.

Both my secure offsite location and home network monitor the incoming files. When they detect new ones, they make true hard copies - they print the suckers. At each location, I've set up an automated mover which is basically a Lego(R) MindStorms(R) arm that grabs the fresh-off-the-printer source code. At the facility, it then passes it to a second arm, which files the document in a secure, fireproof safe - indexing it by filename, date and time. At home, I just have it put it in a box under my bed, so I feel all warm and fuzzy at night.

This process has saved me so many times. For example, just the other day my customer decided that the thing he told me to delete that I swore to him he would need and pleaded not to delete because we surely would just need to restore it later on, needed to be restored, because he was wrong about us deleting it, and he actually did need it. So I kicked off my restore process, which pulls in the copies from my other partition, my USB drive, and then contacts my offsite facility, which retrieves the version, OCRs it, and sends it back down my reverse-tunneled SSH connection. It then compares all three versions, and, finding them all in agreement, restores the file just like new.

Sure, keeping up with all that can be expensive, but you know, you just can't be too careful. Luckily, with this process, I can have my batch script automatically monitor all of my drives, so it doesn't really matter where I keep it at - it does the right thing.

Of course, that's all for my work stuff. For personal projects, I just keep them in C:. Why bother with folders, ya know?


What's wrong with My Documents? Code files are documents, aren't they?

I keep a Projects folder inside My Documents, which then branches out into the various working copies I might have checked out.




Never in the C:\ drive on windows. I usually leave that for the OS and programs, as it can easily be replaced/re-formatted if something goes wrong (eg. viruses).

Stuff usually goes in X:\work.






More often than not, mine ends up in the recycle bin.

I keep it on an external HD and pull it over to the PC when working.




Also store it in my SVN


What a thoroughly pointless question. -1.


I'm amazed at how much data that directory can hold!


I have everything under source control, so I'm not really worried about losing the source. Therefor, I have it all under My Documents\My Code\Projects.

However, what I don't like about it, is the fact, that whenever I need an absolute path - it's a lot of typing. Or some tools don't even support paths that are this long... Therefor, I have this line executed, whenever windows boots:

subst P: C:\Users\username\Documents\My Code\Projects

So, all of my projects are accessible from paths: P:\ProjectName.

I think more people should know about this subst command. Then we'd rarely hear anything about paths being too long... ;)


My personal source is in "~/src/", and has been for a long time. Under Cygwin I put it in "~/tmp/" if it's temporary or "My Documents\temp\" if it's Windows related. Long term projects go in "c:\opt\" which is linked to from "/opt/" under Cygwin. Using "c:\opt\" makes it much easier when it comes to Eclipse, backups and Windows Explorer.


In Vista

C:\Users\James\Projects (same level as Documents)


Source Control. As long as it is there it doesn't matter where else it is.



My Documents\Work\[Client Name]\[Project Name]\Working Code

I keep it safe. In a password-protected RAR.








Addendum: Technically speaking, your projects are what's in source control. Your sandbox on the other hand is a local copy of the projects that you're currently working on. Your sandbox doesn't need to be an up-to-date clone of your entire project repository. Therefore one could say that it makes more sense to call your local directory "sandbox" rather than "projects", since your local disk is not the best place to store your projects in the first place.


I mimic our source control on my local system. I have a folder with the name of the source control server, and then subfolders for each database.


C:\SourceControlServer\Database1\ C:\SourceControlServer\Database2\

It makes it clean for me to keep all our projects organized, especially since we have several databases and have had to change servers in the past.





In fact I've made it a point since the Amiga times to always keep my "documents", things I create myself that are hard to replace, on a separate logical volume. On the Amiga i kept them on the work: partition.

This makes it easy to separate operating system from actual files I care about and do stuff like reinstall and add other operating systems into the mix with ease.

Windows and installed apps tend to drivel crap all over the old "My Documents" root so I've basically stopped using that. "My Images" and some other subfolders however I've redirected to D:\Images and so forth - not that it really matters.

My backup solution backs the entire D: using shadow copy, no exceptions, easy peasy.

It's not perfect for shared computers of course, but I don't think the question was about those. If so, the network home directory would be preferable - or in a non-roaming part of the user profile it the network isn't up to it.

At work it's D:\ companyname.

Also, any windows-specific folders except for your own user profile should not be writeable at all if you're running as a standard user - and if you're not, shame on you! ^^


I put mine in c:\src



which is then hard linked to


So I can access it easily, but the data is stored in the 'correct' directory - useful for backups, data transfers, computer upgrades. I don't have to search for everything.

junction is the linking program for windows. This is much easier and nicer in unix, though.


C:\InetPub\wwwroot\ [project name]

I keep notes in My Documents though... things like progress logs, code snippets, backups.


~/Documents/projects/lib/various folders

My co-worker keeps his in /Source/lib/various folders

Eitherway various project folders can then be parallel to lib under projects orSource...


Default location for Visual Studio which is %UserProfile%\Visual Studio 2008\Projects.



(since we use SubVersion...)


C:\Users\max\devel, now that they finally adopted a halfway sane directory structure with Vista.


Anywhere were i need the working copy to be. (dev web root, flash drive, etc.) I check it out, work on it, then (when needed) delete it.


/home/sean/Documents/[Project Name]/src/

I suppose the equivalent in Windows would be:

C:\Documents and Settings\Sean\My Documents\[Project Name]\Source\


C:\dev\projects for project directories


C:\dev\workspaces for Eclipse workspaces


I don't see a problem with using "My Documents", as long as you don't let it get too cluttered, but I also agree with some of the other comments that it's best to keep important stuff on a different drive, in case you ever need to re-format or your Windows install crashes. You can still use "My Documents", but map the target location to a separate drive, such as "Z:\My Documents", so it's easy to access inside of Windows, but still isolated.

With that said, I create a dedicated "My Documents" folder in my separate drive, and try to not to let it get too cluttered with development work. For work, I have a folder with the company name, and in that folder, I have a dedicated folder for items checked out from the repository, and a different folder for my own tinkerings.

It ends up looking something like this...

  • C:\
    • Windows
    • Program Files
  • Z:\
    • My Documents
      • My Music
      • My Pictures
      • etc.
    • Company
      • Repository
        • checked out items...
      • Development
        • Playground/Sandbox
        • other tinkerings...
    • Other stuff...

Mine is X:\Dev.


CVS, I don't consider local copies real to motivate myself to commit often.


I lost all mine this weekend because it was on C: and I screwed the partition because of a damn vista OEM cd on which I was searching for the repair option but ended reformatting with a simple "next" without any warning..... So i'm keeping it on D: now.


D:\Work I don't keep much in My Documents (not event documents.. ;-)

Someone earlier said:

what's wrong with My Documents

I would say, everything is wrong with my documents. It would really be fine if it wouldn't be so damn integrated into the operating system. Maybe I'm a little paranoid and little bit of a control freak but I really don't like the OS and other random applications organize my work/documents folder, or dump random stuff in my folders (think: saved IM conversations, downloaded files & many hidden goodies).

Plus it offers an easy way out when the Windoze partition needs a remake ;) (Not that you couldn't set My Documents' mount point on a different partition)


I set it up to mirror SVN:

e:[repositoryname]\trunk\ to match up with svn://[respoitoryname]/trunk/


All over the place.

At the bare minimum I keep 1 git repo clone each on my desktop, server and laptop.



The only programs I use in windows are ie and chrome. (even though I have 2k, xp, 2003, and 7 set up as virtual machines.)


I keep my stuff all over, its messy.


~/dev/and so on



With various subdirs depending on the language I'm currently using.

Also, I usually create a directory in my home called "backup".. And I usually create an executable bash script that I put in /bin called "bup". What it does is copy files to ~/backup. In so doing, it renames them with 'date +%s' which returns epoch time.... This way, the files all have unique names... Occasionally, I go in and whack ~/backup/*... And if I ever have to recover something from here, i will have to grep and manually rename... but its better than losing the file forever!


c:\work, cvs, git.

Complete encrypted copies of source code control archives are sent to a remote location each night. Private keys for decryption are kept in few places, plus in a vault. Printed on paper.


In linux:


In windows in lazier and my code ends up on my desktop or wherevere my IDE puts code in by default.



And D:\data is the only directory which needs backing up.


remote git + local git + backup drive.



I modified the Group Policy which applies to our development machines to automatically create that folder and assign full control to the Developers group. It's also excluded from anti-virus scanning.

If you're working with several developers, standardise on one folder for your admin's sake! :)


I keep mine on SVN/Git, Dropbox as a backup and on C:\Mingw\Projects\



I prefer to keep it short to make commandline tasks easier. Folders without spaces saves worrying about wrapping paths in quotes, etc.


Naturally I store my code in a repository (I use SVN).

I tend to avoid using My Documents folders and the like after many "accidents" with roaming profiles. Instead, I have a separate hard drive partition for all my data. Since most files are small I run it in FAT32 so that other OSes on the machine can access these same files too.

My coding files are stored on D:\Projects\[Client Name]\[Project Name]\

Keeping everything stored on a partition also allows me to make quick copies for backup. XCOPY D:\*.* //backup/ couldn't be any easier.


Here's my folder structure:

  • D:\Work\Dev\ - for projects
  • D:\Work\Docs - for various documents, documentation etc. not beloging inside projects
  • D:\Work\Tools\ - for programming tools and utilities
  • D:\Work\Kits\ - installer kits used for projects or tools
  • D:\Work\Samples - sample projects etc.
  • D:\Work\DataBases - database folder for sql server databases

On Mac


On Windows


On Linux


(where reponame is the name of the source repository)

  1. We all agree (well, almost), that storing your code on C: or in "My Documents" folder has some disadvantages. But... why not try to move the whole "My Documents" to D:\MD? This way you achieve two things: you are not storing your documents on system partition (it is crucial if you want to quickly restore system partition in case of some problems) and second is that path to all folders inside "My Documents" is now a little bit shorter (in case you need it yet shorter - try the "subst" command mentioned by someone in this thread.
  2. Repository - yup, this is very important. I personally have a locally set-up SVN repository (but recently I am using Git and Mercurial), but there is nothing that should stop you from using some online free service to host your code. My personal choice is projectlocker.com - just take a look and decide. There are many others, but this one offers private projects for free.
  3. If you do not want to store your files using some source-code hosting service: try to use some file storing service for it. The way Syncplicity.com is working seem to be ideal for such a task. Just select the folders which content should be automatically synchronized... and voila! There are many more similar service, just pick up one that fits your needs best (File synchronization services).

Certainly not: C:\Documents and Settings\Administrator\Desktop\New Folder (3)\test


On a stack of punch cards.




For c#, just the default location For eclipse c:\users\tom\eclipse\ For python c:\users\tom\python\

No structure whatsoever, but my structure lies in source control, and not my machine.


I use the Fossil VCS for personal projects. I keep Fossil executable, my repository, and my in development code on a thumb/flash drive. I also have SharpDevelop installed and running from the thumb drive. This gives me a fully portable dev environment. SharpDevelop is a free .NET IDE if you did not know.


For personal projects, I keep them in 'Documents\Source Code\'. I already have a strategy for keeping my Documents folder backed up, so this keeps my source code backed up the same way.

On very large projects, the file paths approach MAX_PATH, and so it becomes important that the first part of the path be kept very short, e.g. 'd:\src\'.

Back in the "old days", hard drives where never big enough, so source had to go on a separate drive from everything else. Today everything lives on C:.


Somewhere in version control system (VCS). D:\Projects\PRJNAME will have local checkout of code for developers (well, if they are using Windows!)


Ideally it should be placed in a path without spaces, so anything under "Documents and Settings" on XP is out, as certain build scripts can have trouble with spaces.

It should be close to the drive root for easy access via command windows.

it might help to create an environment variable containing your workspace root that way you can type cd %work%


G:\projectname\ I too save C: for OS and programs


To keep things consistent across my team, we all create the same working folders on our local drive.

C:/WorkProjects, with a subfolder for each project. It's simple and makes sure that we always mean the same thing when we talk to each other.


I usually place code either in my home folder, or on the root of some non-OS drive. Allows for easy access from the terminal.



It's quick to access and makes sense to me.




on Windows Xp box: C:\development

on Vista box: C:\Users\gldm\development

on Linux box: /home/gldm/development

(...where gldm is my username ;-)


I work on a server via RDP with another developer, we use c:\CKDev and C:\SSHDev respectively. Makes life easy, and allows us to find each otehrs code when necessary (Read permissions only).


Projects are stored by client and project:


Dependencies shared across multiple clients are stored in:


Dependencies specific to one client only are stored in:


The _Shared folder (at both the global and client levels) can also contain other things, such as installers, documentation, etc.


C:\Users\priyank\Documents\Visual Studio 2008\Projects\

Now as USB memory drives are becoming cheaper, I am planning to move my development codebase to a usb flash drive. The advantage would be when I need to format the system, don't have to worry about backups, as it would be already there. Also I can work in office or at home using the same code base. It also helps to protect the important data, as the data would be always separate.


i am using c: for windows.


Separate partition. That way I can always access it with two clicks, one on My computer, then F, in comparison with clicking away to get to it somewhere on disc hidden in the directory maze. And it makes life easier with directory structure, when backing up stuff etc. Probably has some other advantages, but I remember them at the moment :)


Never the c: drive

[My Documents]\My DropBox

It's so much easier than source control. No need for tedious commits and updates. ;)

But seriously, for home stuff and quick test projects I don't use SVN any more. I keep it all synced and backed up (including revisions) just by keeping it on my DropBox. If it graduates into a real project, then I add it to SVN.




C:\Users\Daniel\Documents\Visual Studio 2008\Projects


My local SVN working copies are at


(Which, depending on disk partitioning issues, might actually be a symlink to somewhere else than /home, like /opt/devel.)


In a directory under ~/, if it's a major project. For small test programs and prototypes, I use ~/sandbox/.


C:\Source\Project Name


T:/Trash/ (no kidding)


I never save any documents on the OS's partition - seems to be more reliable elsewere.




C:\Development contains a large number of checked out subversion repositories. If I'm working on a main version and an experimental one, I'll check both out to the same root, but give them appropriate names.



c:/dev for me.



When using cygwin on windows, it's equivalent to c:\cygwin\home\myusername
(depending on how you set up your mount point)


D:\DEVEL\[Project Name]

  • \myfileserver\i$\projects\
  • \myfileserver\i$\docs\
  • \myfileserver\i$\work\company\projects\
  • c:\projects\ (when working on the laptop)

plus backups to my backup file server.


DevStudio rules as an IDE and a debug environment when I can get away with pure, system agnostic code, so I do most of my actual work on Windows. However, most of the code I write is multi-platform: Windows, Linux (x868 & ppc) and Solaris.

I am frequently sharing a folder to a Linux box. It's actually more likely that I am exporting a directory from a Linux or Solaris box to other Linux and Solaris systems using NFS and also to Windows using CIFS/Samba.

Two of the most important things to me are that paths are short, and contain no spaces. Developing on Unix systems typically means a lot of typing, so short paths are really nice. Spaces can cause some real problems in things like makefiles and other scripts. It is usually easy enough to quote or escape a space once, but each time you pass a variable of path names with spaces, they get harder and harder to deal with.

I also like to keep paths that are as close to the same as these systems will allow. Something like /space/ws/ on the Unix boxes. The can be a real directory, a link to another local directory, or a mount point to something I'm importing from another system. On Windows, I can usually map this to something like L:\space\ws\.




I like to have my projects on a separate drive to my system one, so normally I keep it on D:\projects. This way I get better system performance, plus I save space on C drive which is normally a faster smaller drive (10,000 rpm).

Regards Lee


I keep my code in three places.

1) I keep it on a development server. I avoid developing on the local machine. I want all the development to happen on another machine that I connect to remotely via ssh. This is especially useful with web programming.

2) I use git, so it is very easy to keep code on a thumb drive. I do this so that I have a copy of the code handy if something is up with the dev server. Mostly I do it so I can code with my laptop while on the train, and don't have any connectivity.

3) I keep a backup of my code on Amazon S3 via JungleDisk. You never know.

I don't put code on hard drives on client desktops/laptops. They are extremely prone to failure. I am prepared to erase them and re-image/re-install them at a moment's notice. That means not keeping any actual data on there.



It's a samba mount to a server that gets backed up every night along with every other developer's workspaces. The same server is also used as a development box and hosts our source control system. The network latency for edits is low enough that it's negligible for our small team, and it means we have instantly deployed code on a server for testing instead of running development environments on each desktop.


Since I am a consultant, I might need a subfolder with the name of the client..

D:\Projects\[Company Name]\[Project Name]


c:\source\ [mirror source control tree]


I just checkout from SVN from within VS2008, so my code gets stored in My Documents\Visual Studio 2008\Projects.

But I wouldn't care if I lost that folder, because I commit my changes back to SVN regularly.


I have a projects folder on a seperate partition. This partition is also backed up on my external hard drive.




I generally keep my stuff in ~/src/{projectname}. If I'm in Windows (and not using MSYS/MinGW), I'll throw it in My Documents\src\{projectname}.



I find it the fastest way to access my stuff. I also have a Websites/Backups/ Folder where I back everything up.


how about in:


I use the same structure for each company (doc, src, www):


Its very organized and easy to work with. Generally though, I don't have to dig through any of these folders that much because I wrote a system tray menu to give me quick access to all my solutions.


In a memory-mapped partition, that's way better than dying with I/O, if you want it secure, commit it!


I use SourceGear Vault for my work projects:


The Development directory is my "trunk" (for those SVN users out there) while Branches holds separate source trees for releases.

Personal projects just go in C:\Users\David\Documents\Visual Studio 2008\Projects... but I'm hoping to clean that up later. Perhaps even put everything under a personal Vault server.




/home/username/progs/(language name)/(project name)/ Also with backup copies on two usb keys and sometimes a backup on my windows machine.

I tend to be a bit of a neat freak when it comes to organizing my files...


In my $HOME I keep a $HOME/svn and $HOME/git directory that is sorted by areas of work. E.g.

$HOME/svn/$employer/ has all of my professional projects $HOME/svn/googlecode/ has all of my googlecode projects

I don't keep any code not in external revision control UNLESS it is very trivial.


At work, at C:\Projects to prevent the anoying 'can't run programs from networkshare errors' At home, same as work but trying to setup a SVN on my NAS (CH3SNAS)



for PHP projects




i have in on D:\perl* but also in SVN and copy on USB sticks


usb stick :>


I Keep mine in a drawer beside my desk. Next to the type writer.

What the hell sort of question is this LoL







This allows for multiple projects, and keeps things much more organized.

Organization creates efficiency in the long-run.



%USERPROFILE% in my enviroment is set to D:\Users\*UserName*. We have several sets of software tools that are based off of one product, so this keeps them organized, backed up (by CorporateIT who pull that directory), and mirrors our repository.



(along with subversion on NAS)






Unix ( when I have one : ( )



Where I have c:\[company_name] mapped to a separate physical hard drive.


On my dev box, C:\ holds OS and all installed apps. D:\Source is where all my projects live, D:\Mine is where my docs/pictures/music/etc are.

D: is different physical disk than C: -- that helps with overall performance of the system.


On a backed up network folder, which is mapped as my H:\ drive. That way I don't have to worry about backups.



Found out there's an unpublished exclusion to the Virus Checker that skips that directory :)


Short and easy to reach.




~/projects and then I push it up to http://bitbucket.org


I have a few disks so its on a separate disk to most stuff, and of course in perforce on a server.



which is shared on my virtualbox installation of linuxmint, and happens to map to




Then I make separate folders to try and categorize (Like php/, ruby/, iphone/, etc.) languages. This is because I sometimes make simple single-file scripts to try things out, especially when I'm learning a new language. It's probably not the best way to do it, but it works for me so far.



*nix is all about the TLAs ;-)


After years of Windows development I've refined my approach to the following, which works for me:

I have at least two logical volumes: one is C:, and the other is mounted under C:\Work (Windows can do mountpoints not unlike Unix; many people are not aware of this).

Under C:\Work I have folders like:

  • C:\Work\Docs - Windows is configured to use c:\work\docs as the location for the 'My Documents' special folder
  • C:\Work\Downloads - Same as above but for the Downloads folder
  • C:\Work\Sourcecode - Whenever I download source tarballs I extract them here
  • C:\Work\Projects - This is where my actual projects go

Projects is broken up thusly:

  • C:\Work\Projects\Scap - Whenever I need to create a throwaway project to try out an API call (or test a StackOverflow solution) it gets created here
  • C:\Work\Projects\Personal - All my personal self-edification projects go here
  • C:\Work\Projects\(CompanyName) - Projects for a company employing me

Under each company the content varies depending upon what I'm doing. At my current company this consists of working copies for SVN trunk and various release branches of our product.

On my dev workstation at work I use another mount point to store the working copies of my company's source code on a hardware RAID 0 volume consisting of a couple 10K RPM SAS drives for maximal I/O performance during builds.

The advantages of my approach are: * Don't have a proliferation of drive letters; UNIX got this right with a single-root file system * Can easily carve off a branch of the file system to a separate volume (see my example above with the separate RAID 0 volume) without changing any paths * Can repave my OS partition and still have all of my files and documents just where I left them

This is probably an excessively verbose answer to your question, but it kind of got away from me.


/root/play or /root/work, depending on which type it is - not that I'd ever code as root cough.



Might I add that iDisk is not very good for keeping code in, because there are often merge conflicts which can be rather disastrous if you click the wrong button accidentally :) But it is useful because I tend to randomly code things at random times at various locations.


I put mine in c:\source. I had it there for the past eight or so years. I started out with Visual Source Safe as a repository, but as for the past several years I've been using TFS, which works great.

I do also keep some source in My Documents\Visual Studio [version]\Projects\ In there are simple try out projects that are usually build to troubleshoot some problem or to explain something in a presentation or on my blog. The reason it's over there is, that it takes no effort to use it, at all. Visual Studio (my preferred IDE) puts it there by default and I'm fine with that for these particular projects.


All my code lives in ~/development/, this means it will be backed up with the rest of my home directory.

Git is used for version control, and often code gets synced with an external server.


  • < category > would be things like a company or language, some kind of collection.
  • < project > is the project name.







I use windows for my workstation, but serve my files from a local FreeBDS development server that mimics the live server as much as possible.

Then I have a shared drive w:\ (w for webdev) in windows that points to /var/www/ on the server.

Local path: W:\apps\appname\

Server Path: /var/www/apps/appname/

And then I use Backup Genie to back up any changes each night to my backup HD like:



~/Development (also my Eclipse workspace)



Putting an underscore in front of it makes it easy to tab-complete in the terminal. My build directory, similarly, is ~/_code/_build/PROJECT


I always setup a ten gigabyte partition when I install Windows the first time. This is dedicated to all my source code, and is in turn on a 10,000 RPM hard disk. I have several folders which are structured:

D:\doc\ (Documents that may be relavent to all of my source code)

D:\iis\ (I wrote a tool to move the entire root IIS Directory, I use this for local testing of Web Applications.

D:\ref\ (This is used for release builds of libraries that are used across multiple products as references)

D:\src\ (This is where my actual code goes)

I then structure all my code as follows:





In my code directory of the project, it would of course actually contain all the projects in that solution. As well as the solution file itself. I have found that by organizing code this way, I have very quick access to everything I need. Everything is in the same structure, so I never have to search for something either. This is also how I was taught to organize projects at my first (and only :\ ) job as a developer.

I could not even imagine storing code anywhere else in the system... I hate long path names for one, and code doesn't really belong anywhere else in the system. Code is just that special.


Since on OS X Apache by default runs of this directory,

~/Sites/<project name>/

for websites. For other stuff, it usually starts out in

~/Desktop/<project name>/

for quick mockups/experiments, but may eventually be moved into


if useful, otherwise Trash.

All types of projects are checked into a company repository for work stuff or local /svn for personal projects.


Projects. Working copies.


Repositories. Local repositories.


Wikis. Personal TiddlyWiki for each project.


I keep working copies in ~/projects within category folders (eg. ~/projects/web or ~/projects/graphics).


I love this we are all just typing absolute paths from our hard drives. Genious.

I suggest you put them in a folder that relates to the sourcesafe database name.

So if you have 3 different repositories.

One for VB6, one if SVN and one is .NET you would end up with d:/VB6, d:/SVN and ..... D:/Net


I have special partition named P: with source files in directory P:\SVN and it is repository mirror in fact. Object files places in special partition O: to solve fragmentation problem (it is safe to format it when fragmentation too high).



I'm a bit paranoid..


Since most of my developing is done professionally where we need to protect our code I use a truecrypt volume which I mount to let's say e:

If I change computer I can simply move one big file and I am done.

  • L:\Projects\
  • L:\Projects\Personal\
  • L:\Projects\Work\Job1\
  • ...

L: being mapped to my server.


C:\Work\ - for main project work (and then into SVN)

c:\Work\EXTERNALS - for opensource stuff downloaded from SVN repo's that I dont have write access to

Always been a habit from work to store stuff in a Work folder in the C drive, that way everyone knows exactly where it gets stored and what its about.


C:\dev on windows - the whole team (3) does this - it's useful if someone goes on holiday and forgets to check some stuff in - C:\dev is accessible from any logged in user but a users personal area (such as "My Documents") isn't. And before anyone bitches, I know people should strive not to miss out files when checking stuff in, but we are all human.




[root]\dev works for me.

If I have a D drive, that's where it goes. Otherwise, it's the C drive.


I put it in "My Documents \ Sources" and always keep two copies: one in the pendrive, another in my site / gmail. These last ones I do about once a week: use 7zip to make it smaller, put a password on it, and I'm done.


I flush the whole program from my brain to a single source file in a fell swoop of hysterical typing. I used to use butterflies, but found that process a tad too granola.


What is up with these colons in your file paths?

Unix/Linux/OS X users file paths could have been mentioned in your question.

/Users/josh/Development/(python,web,javascript,ruby,games)/(project name)/(project files)

It's way more convenient than a My Documents folder.


D:\Projects and sometimes when i need to access it somewhere else i use skydrive


If you are on Windows, it's best to place your project in a folder which has a name of at most one word. Two words or more named folders can cause some issues if you are running a lot of open source languages and tools.

On Windows:


On Linux:


On Mac:


I use python_dev because I prototype a lot of scripts in Python. I use dev mostly for desktop applications. web_dev for any web applications across different languages and platforms.


D:\Work works for me.

That folder has individual sub-folders for each project I am working on. Projects involving multiple build targets (e.g., 4 x .dll, 1 x .exe, 1 x web) get a solution folder and then individual project folders.

I have been known to organize the Solution folder hierarchy as well. In fact, I once wrote a tool in .NET to generate solution folder hierarchies based on solution types.

One of my biggest pet peeves with Visual Studio is the damned \obj folder it keeps creating. I would like to give it a custom path so it matches the rest of the folder names.

I realize most of you would probably not care about folder names, but it helps me keep things organized.




I used to use "My Documents", but it sometimes caused me problems because of the space in the directory name. I then switched to C:\dev\projects (for my code) and C:\dev\repository (for my maven repo).

Also note that a workaround for directory names with spaces is to use the short directory name instead. e.g. MyDocu~1 instead of "My Documents".


Code working directory is c:\code\

Yeah, I know the C drive is controversial, but wait, theres more.......

Source control system is on the raid array in the box, which is R:\Subversion\Repositories\


I throw everything in a Code folder inside my Dropbox folder. That way as soon as the files are dropped they get uploaded to the cloud. That way I can resume working later from home without transporting anything.

I can't believe i just used the phrase 'the cloud'. Someone downvote this.


More interesting for linux users (Windows maybe as well) might be the question how many partitions you use and what filesystem you use. I've seen people use a separate partition for source code. Especially BSD users seem to can't get enough partitions. /home /swap /usr /boot you name it. So if you have many users on one PC but want to share projects a dedicated source code partition wouldn't be such a bad idea at all... But who shares a computer anyway...


Depends on the project, and the system I'm on. Source code is always checked into Subversion, which is hosted on my Dreamhost account so it's offsite.

If I'm working in Windows my web projects are checked out to:


In Linux, which is what I work with mostly these days, web projects are checked out to:


For non web based stuff it goes in:


  • /home/{username}/workspace/{projectname}/

  • /home/{username}/webapps/{projectname}/

  • /home/{username}/utilities/{type}/

  • /home/{username}/Desktop/ -> (yes, I know... it's a large scratchpad for solving quick stackoverflow questions, tempted to put a cron job on it to clear it every night.).

Using a linux system... all personal files are in my home folder. I don't usually keep stuff any lower than that.

For apache, I've created a virtualhost and a hostname that redirects cj.dev to it... inside a directory listing script... for previews.

On Windows:

C:/Documents and Settings/{username}/My Documents

  • /Programming (for experiments)
  • /workspace (for aptana projects)
  • /codejoust (for records... or notes, no code though).
C:\[project name]

I don't keep data on C at home, but I don't keep it in SVN at home either. My point being that there's never that much data to lose that I'd be worried at it. Everything that matters is also in SVN or on network drive. Besides, my work computer has no other drives.



(it's a subst)


git push everything to a nightly backed up server


I have MediaDrive:/dev/source/trunk for everything that isnt released MediaDrive:/dev/source/prv for anything that i want to keep but dont want it to be release just yet. (it should be called skr3tPrjs but i though prv is good enough) and finally MediaDrive:/dev/source/online for projects that has a repository that isnt my local pc.

I also have MediaDrive:/dev/external/<OSname or common> for external libs. And MediaDrive:/dev/repofor my repository. I also find MediaDrive:/dev/prjFiles/prjName to be useful to keep out bins from my svn folder. Its easier to archive code that way.

Yeah i code a lot lol.

Bonus: For permission reasons i sometimes need SomePath to exit so i make it point to a folder in my dev folder. I use Junction Points in that case. There is a very useful MS app i link to in a comment to this post. http://stackoverflow.com/questions/1315042/consistent-dev-path-on-windows/1315346#1315346


I keep projects under:

  • d:\[username]\proj1
  • d:\[username]\proj2
  • d:\[username]\...

with jonctions in d:\_ for projects on which I'm currently working e.g.

d:\_\proj1 links to d:\[username]\proj1

I maintain d:\_ for shortcuts and for projects having issues with some path patterns or length


i mostly do web projects, so:


this helps distinguish between my hobby projects and html mockups


D:\Workspaces\[client or uberproject]\[project]

and on MacOsx

/Users/MyUser/Workspaces/[client or uberproject]/[project]

all properly git'ed or svn'ed


I organize my local working copies by where they are kept under revision control:


etc. etc.


I use external Disc with TrueCrypt partition (mirrored with rsync after every commit) , and mount in ~/dev or x:\dev on windows like.



Using Visual Studio 2005/2008/2010 and TFS running on Windows XP (host) and Server 2008 (dev VM)


I have mine on a server with source control (Mercurial). There I have them in C:/MyRepo/Projects. On my desktop computer I often use My Documents/Work or something for cloning the repos.


At home:

~/devving/[project-name]/src/ on Linux
~/Development/[project-name] on Mac OS X
~/Sites/ on Mac OS X for PHP web development

I use Time Machine for back-ups. Although if one of my Linux computers' hard drives crashes and an important project is on that, I am screwed to death. :)

At school:


Damn they must map that to simply G:\ or something.




/git/ -(which is a symlink to)-> /var/local/git/ (/var has its own partition)



And on BitBucket.



-4 accepted

Now that I seem to be able to use Cygwin's tools to do my building, source control access, etc., I think I will be using:


This is an Eclipse workspace directory. Each project directory inside will be a git working tree.