21

ホーム フォルダーで、コード プロジェクトの個人用ワークスペースをどのように整理しますか? また、複数のプロジェクトを同時に処理するためにワークスペースを効率的に保つにはどうすればよいでしょうか?


私の質問の最も重要な側面は上記です。トピックの特定の下位部分に対処したくない場合は、読むのをやめてもかまいません。以下は、ワークスペースの編成に関するさまざまな関連する質問です。それらすべてに対処する必要はありません。以下の関連する質問のいくつかに対する部分的な回答でも興味があります。

この質問は主に UNIX と OS X のコンテキストにあります。Windows ベースのユーザーは提案を提供できますが、私は通常 Windows ではなく UNIX で見られるホーム フォルダーとコマンド ライン規則に主に関心があります (cygwin を使用しない限り)。

特に、複数のコード プロジェクトを同時に管理する場合、どのようなフォルダー構造が役立つと思いますか? また、さまざまなオープン ソース コード プロジェクトをダウンロードするときに、ワークスペースを散らかさずにさまざまなソース ツリーをすべて整理するにはどうすればよいでしょうか?

特に、特定のプロジェクトに集中する必要があるときに邪魔にならないようにしながら、コマンド ライン経由でプロジェクトに簡単にアクセスし、ブラウジングしやすくするための秘訣やヒントを知りたいと思っています。

さまざまなソース リポジトリを整頓するのに便利な規則はありますか? 特に git では、さまざまなブランチと関連するリポジトリをどのように整理していますか? 頻繁に作業コピーを吹き飛ばし、定期的にソース管理から完全に更新していますか? あなたは何を持ち、その理由は何ですか?また、特定のプロジェクトに、独自のホーム フォルダー構造にマップする必要がある多くのパスの依存関係がある場合、名前空間とパスをどのように処理しますか?

bin フォルダーと共通ライブラリーはどうですか? さまざまなプロジェクト (おそらく異なるバージョンの PHP、Ruby、Perl、Web サーバー、コンパイラなど) 用に多くの潜在的な開発環境を作成する必要がある場合、これをどのように管理しますか。

ベテランのシステム管理者にとって、経験から何がうまくいき、何がうまくいかないのでしょうか?

シンプルになりすぎず、できるだけシンプルに保つにはどうすればよいでしょうか。

一度に複数のプロジェクトに取り組むための最も柔軟性を与えるものは何ですか?

定期的にプロジェクトをワークスペースから移動し、ソース管理から再インポートしますか? プロジェクト環境を頻繁に再作成する必要性を減らしながら、クラフトの蓄積を防ぐにはどうすればよいでしょうか?

ワークスペース全体をクリーンアップまたは吹き飛ばして、貴重なソース コードへのアクセスや過去のプロジェクトから得た組織の効率性を失うことなく、白紙の状態から始めるにはどうすればよいでしょうか?

4

4 に答える 4

13

私は自分で書いたソフトウェアを、私のメイン Web サイトにちなんで名付けられた特別なディレクトリに保管しています。議論のために「ジャグル」と呼びましょう。~/juggle/software/ の中に、私が書いた各プロジェクトのサブディレクトリ (通常は git で管理されます) と ~/juggle/websites/ があり、その下に、生の html か何かに関係なく、各 Web サイト ドメインのサブディレクトリがあります。 webgen や staticmatic のように。

それらの間をジャンプするのを助けるために、私は bash に非常にうまく結びつく 'apparix' を使用します。

$ cd ~/juggle/software/wolfsbaen
$ bm # bookmarks this with apparix

これでどこからでもできるようになりました

$ to wolfsbaen

ダウンロードしたソフトウェアの場合、 ~/software/ があり、その中には次のとおりです。

  • archives - ダウンロードしたソース tarball を保持します
  • documentation - ダウンロードした HTML ドキュメントおよび PDF ブック用
  • ハック - 新しいアイデアやソフトウェア ライブラリを試す使い捨てプロジェクト用
  • プロジェクト - 私が共同で取り組んでいるが、自分で始めたわけではないプロジェクト
  • simple - 解凍されたディレクトリ内で実行できる bash/python/ruby プログラム用
  • subversions - すべてのリビジョン管理チェックアウト用: cvs、svn、git、hg など。
  • unpacked - コンパイル前の展開された tarball 用

~/bin には、私が作成して常に使用している便利なスクリプト用のものもあります。これを ~/.bashrc の PATH に追加します

あなたの残りの質問は、私にはあまり当てはまらないと思います。ただし、git を使用すると、自分のワークスペースを爆破する必要はほとんどありません。作業ディレクトリにいる間に新しいブランチを作成し、突然ブランチを切り替えなければならない場合は、最近の変更を隠します。また、自分のすべてのソフトウェアと Web サイト ソースのベア リポジトリ クローンも保持しています。

$ git clone --bare . /srv/git/wolfsbaen.git

すべての作業フェーズの最後に、これに「git push」します。これにより、/srv/git がバックアップ用の明白な選択肢になります。

于 2009-09-12T01:51:17.493 に答える
3

すべての質問に答えるつもりはありません。ただし、私は SVN を使用しており、プロジェクトの規則に従っています。だから私はというフォルダを持っています:

d:\development

その中には、すべてのプロジェクトがサブフォルダー (おそらく 20 程度) として含まれています。それらのそれぞれには、

\trunk
\branches
\tags

以上です。自宅に 2 台目のマシンがサーバー (およびメディア センター:P) であり、その上で SVN を apache で実行し、さらにtracを実行して、それぞれのタスクとバグを管理しています。また、ビルド用の CC.net もあります。

于 2009-09-12T01:20:48.970 に答える
3

ホーム フォルダーで、コード プロジェクトの個人用ワークスペースをどのように整理しますか?

UNIX に関する限り、プロジェクト フォルダーは ~/dev の下に配置します。私は通常、Subversion からこれらのプロジェクト フォルダーに何かをチェックアウトすることになります。

一度に複数のプロジェクトに取り組むための最も柔軟性を与えるものは何ですか?

Web プロジェクトの場合、一連の Apache の名前ベースの仮想ホストを維持すると、複数のプロジェクトで同時に作業する場合に非常に便利です。http://foo.localhost/~/dev/foo/public、http://bar.localhost/-> ~/dev/bar/public などを指すことができます。

GNU Screenは、私のローカル開発ワークフローの鍵でもあります。ギアを別のプロジェクトに切り替える必要がある場合は、Ctrl-a、c を押して、新しい分離されたターミナルを使用します。

于 2009-09-12T01:51:14.080 に答える