如何为主文件夹中的代码项目组织个人工作空间?那么如何保持工作空间同时处理多个项目的效率呢?
我的问题最重要的方面是上面。除非您想要解决该主题的特定子部分,否则您可以停止阅读。以下是有关工作空间组织的各种相关问题。无需解决所有这些问题。有兴趣听到以下一些相关问题的部分答案。
这个问题主要是在UNIX和OS X的上下文中。基于Windows的用户可以提供建议,但我最感兴趣的是通常在UNIX而不是windows中找到的主文件夹和命令行约定(除非你使用cygwin)。
特别是在同时维护多个代码项目时,您认为哪种文件夹结构有用?当你下载各种开源代码项目时,如何保持所有各种源代码树的组织而不会过多地混乱你的工作区?
特别是我想知道什么技巧或提示可以让项目通过命令行轻松访问,并且当您需要专注于特定项目时可以轻松浏览。
您是否找到了有用的约定来保持各种源存储库的有序性?特别是对于git,你如何组织不同的分支和相关的存储库?你经常吹掉工作副本并经常从源代码控制中刷新吗?你一直在做什么,为什么?如果某个特定项目有很多路径依赖项需要映射到您自己的主文件夹结构,那么如何处理命名空间和路径呢?
bin文件夹和公共库怎么样?如果您需要为各种项目(可能是不同版本的PHP,Ruby,Perl,Web服务器,编译器等)创建许多潜在的开发环境,您如何管理它。
对于那些经验丰富的系统管理员来说,有哪些经验和什么不起作用?
你如何保持尽可能简单但不太简单?
是什么让您最灵活地同时处理多个项目?
您是否经常将项目移出工作区并从源代码管理中重新导入。如何在减少过于频繁地重建项目环境的需要的同时防止残留物的堆积?
如何清理或吹走整个工作区,这样您就可以从空白的平板开始,而不会失去对过去项目中获得的宝贵源代码和组织效率的访问权限?
答案 0 :(得分:12)
我将自己编写的软件保存在一个特殊目录中,以我的主网站命名 - 为了争论,我们称之为'juggle'。我有〜/ juggle / software /里面是我编写的每个项目的子目录(通常用git管理)和〜/ juggle / websites /,我有一个每个网站域的子目录,无论是原始html还是其他东西像webgen或staticmatic。
为了帮助我在它们之间跳转,我使用'apparix'很好地绑定了bash。
$ cd ~/juggle/software/wolfsbaen
$ bm # bookmarks this with apparix
所以现在我可以从任何地方做到这一点
$ to wolfsbaen
对于我下载过的软件,我有〜/ software /,里面有:
我也有〜/ bin用于我编写的有用脚本,并且发现自己一直在使用。我将它添加到〜/ .bashrc中的PATH
我不认为你的其他问题真的适用于我;除了使用git之外我几乎不用闪电战任何工作区。我在工作目录中创建新分支,如果我必须突然切换分支,则存储最近的更改。我还保留了我所有软件和网站资源的裸存储库克隆:
$ git clone --bare . /srv/git/wolfsbaen.git
在每个工作阶段结束时,我都会对此进行推动。这使得/ srv / git成为备份的明显选择。
答案 1 :(得分:3)
我不会回答你的所有问题;但是,我会说,我使用SVN,并遵循他们的项目约定。所以我有一个名为:
的文件夹d:\development
在其中,我的所有项目都是子文件夹(大约20个左右)。在每一个中,都是
\trunk
\branches
\tags
就是这样。我家里有第二台机器是我的服务器(也是媒体中心:P),在它上面我有一个在apache下运行的SVN,还有trac来管理每个机器中的任务和错误。我也有CC.net,用于构建。
答案 2 :(得分:3)
你如何组织你的个人 您的代码项目的工作空间 你的主文件夹?
就UNIXy而言,我将项目文件夹放在〜/ dev下。我通常最终会将Subversion中的内容检出到那些项目文件夹中。
最让你失望的是什么 灵活地处理多个问题 项目一次?
对于Web项目,维护一组Apache name-based virtual hosts对于同时处理多个项目非常方便。 http://foo.localhost/
可以指向〜/ dev / foo / public,http://bar.localhost/
- > 〜/ dev / bar / public,等等。
GNU Screen也是我本地开发工作流程的关键。如果我需要将齿轮切换到另一个项目,我只需要Ctrl-a,c并使用一个新的隔离终端。
答案 3 :(得分:1)
我想分享自己在组织系统方面的经验(即使问题太老了,我希望这可能有助于某人或我可能会得到更好的建议)
我不断更改Linux发行版,有时使用Windows工作。所以我在4个硬盘中分区硬盘。
我的所有工作都在第三个驱动器中进行,这是NTFS,因此可以在Windows和Linux中访问它。 (您可能需要一些cycle
配置,以便在Linux中安装此驱动器时不会弄乱文件权限。现在在这个驱动器中,我放了以下文件夹。
fstab
文件夹设置为scratch
当我安装新的操作系统时,首先我将默认文件夹和书签位置(如桌面,音乐,文档等)更改为主驱动器文件夹和设置保管箱。我将scratch文件夹设置为桌面
对于配置文件(编辑器/ shell等),您可以使用主驱动器/ dropbox / dotfiles。
同样在旁注,我使用zsh / vim / emacs和一些有趣的插件来提高我的工作效率。