/home/chaos/project.
D:\sandbox
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.
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.
C:/[home]/projects
which is then hard linked to
C:/projects
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.
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.
C:\InetPub\wwwroot\ [project name]
I keep notes in My Documents though... things like progress logs, code snippets, backups.
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.
Ex.
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.
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:.
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.
D:\Code\
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! ^^
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.
Somewhere in version control system (VCS). D:\Projects\PRJNAME will have local checkout of code for developers (well, if they are using Windows!)
/home/sean/Documents/[Project Name]/src/
I suppose the equivalent in Windows would be:
C:\Documents and Settings\Sean\My Documents\[Project Name]\Source\
~/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.
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%
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.
C:\dev\projects for project directories
and
C:\dev\workspaces for Eclipse workspaces
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.
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).
C:\Users\max\devel, now that they finally adopted a halfway sane directory structure with Vista.
Projects are stored by client and project:
E:\Clients\ClientName\ProjectName
Dependencies shared across multiple clients are stored in:
E:\Clients\_Shared\Assemblies
Dependencies specific to one client only are stored in:
E:\Clients\ClientName\_Shared\Assemblies
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.
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 :)
[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.
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.
Source Control. As long as it is there it doesn't matter where else it is.
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...
- Repository
- Other stuff...
- My Documents
My local SVN working copies are at
/home/<username>/devel
(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/.
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/
F:\VS08\Projects
F:\Delphi\Projects
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.
Paul.
/home/myusername
When using cygwin on windows, it's equivalent to c:\cygwin\home\myusername
(depending on how you set up your mount point)
- \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\.
All over the place.
At the bare minimum I keep 1 git repo clone each on my desktop, server and laptop.
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.
(hd1,0)/home/knoopx/projects/%YEAR-%CLIENT_NAME-%PROJECT_NAME/$PROJECT_REVISION/src/
H:\*projectname*
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]
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}.
Desktop:/Websites/
I find it the fastest way to access my stuff. I also have a Websites/Backups/ Folder where I back everything up.
I use the same structure for each company (doc, src, www):
C:\Development\[CompanyName]\doc
C:\Development\[CompanyName]\src
C:\Development\[CompanyName]\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:
C:\_Vault\[ProjectName]\Development
C:\_Vault\[ProjectName]\Branches\1.0b1
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/td/code
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.
/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)
In linux:
~/proyectos
In windows in lazier and my code ends up on my desktop or wherevere my IDE puts code in by default.
I Keep mine in a drawer beside my desk. Next to the type writer.
What the hell sort of question is this LoL
D:\working\
or
/home/working/
This allows for multiple projects, and keeps things much more organized.
Organization creates efficiency in the long-run.
D:\data\projects\project_XYZ
And D:\data is the only directory which needs backing up.
D:\Users\*UserName*\Projects\*ProjectGroup*\*Project*
%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.
Vista
C:\Users\oreyes\projects\
XP
C:\oreyes\projects\
Unix ( when I have one : ( )
/home/oreyes/projects
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 scp
s 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?
c:\[company_name]\[project_type]\[project]\[branch]\...
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.
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... ;)
C:\Projects
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! :)
/git/ -(which is a symlink to)-> /var/local/git/ (/var has its own partition)
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:
C:\cygwin\home\david\workspace[project]
This is an Eclipse workspace directory. Each project directory inside will be a git working tree.
On a backed up network folder, which is mapped as my H:\ drive. That way I don't have to worry about backups.
D:\Software\
Found out there's an unpublished exclusion to the Virus Checker that skips that directory :)
C:\Code
I prefer to keep it short to make commandline tasks easier. Folders without spaces saves worrying about wrapping paths in quotes, etc.
I have a few disks so its on a separate disk to most stuff, and of course in perforce on a server.
c:\code\
which is shared on my virtualbox installation of linuxmint, and happens to map to
~/code/
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.
/Volumes/iDisk/Documents/Code
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.
STRUCTURE
~/development/<category>/<project>/
- < category > would be things like a company or language, some kind of collection.
- < project > is the project name.
EXAMPLE
~/development/php/itsy/
~/development/iris/iris_protocol/
~/development/clip/climblogue/
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:
z:\backups\proj\datestamp...
~/_code/PROJECT
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:
D:\src\[CompanyName]\[ProductName]\Code
D:\src\[CompanyName]\[ProductName]\Debug
D:\src\[CompanyName]\[ProductName]\Documents
D:\src\[CompanyName]\[ProductName]\Release
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
~/Dev/
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.
~/Projects
Repositories. Local repositories.
~/Repositories
Wikis. Personal TiddlyWiki for each project.
~/Wikis
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).
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.
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.
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:
C:\dev
C:\python_dev
C:\web_dev
On Linux:
/home/myname/dev
/home/myname/python_dev
/home/myname/web_dev
On Mac:
/Users/myname/dev
/Users/myname/python_dev
/Users/myname/web_dev
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.
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
/Users/myusername/repos/reponame
On Windows
C:\Checkout\reponame
On Linux
/home/myusername/repos/reponame
(where reponame is the name of the source repository)
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".
- 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.
- 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.
- 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
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:
C:\inetpub\wwwroot
In Linux, which is what I work with mostly these days, web projects are checked out to:
/var/www
For non web based stuff it goes in:
C:\Source
/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.
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/repo
for 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:
C:\Inetpub\wwwroot\contract_sites
this helps distinguish between my hobby projects and html mockups
--LM
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:
c:\src
\codeplex
\sourceforge
\google
\tfs
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.
C:\tfs
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.