Skip to content
iwhurtafly edited this page Nov 24, 2014 · 3 revisions

警告 この記事は、beta版機能の記載となります。正式版に先行してのリリースとなるので、機能が変更となる可能性があります。

Dropbox Syncは、Herokuのbeta版機能となります。DropboxとHerokuのアカウントをリンクさせることで、DropboxフォルダのコンテンツをHerokuへデプロイすることが可能となります。

Dropbox Syncのセットアップ

Dropbox Syncのセットアップとデプロイ機能は、Herokuダッシュボードの各アプリの「Code」タブで利用可能です。

リンクされていないアプリ

リンクを行っていない場合、Dropboxは、あなたのDropboxアカウントの Dropbox/Apps/Herokuフォルダへアクセスを行えるよう求めて来ます。

Dropboxへのリンク

あなたがアクセスを許可すると、Dropbox/Apps/Heroku/app-nameフォルダが作成されます。もし、既にHerokuのリポジトリにコードが管理されている場合(git pushまたはHerokuボタンでデプロイ済みの場合)、HerokuはそのコードをDropboxのフォルダへ格納します。

Dropboxへリンクされた状態

注意: リンクを行っても、あなたの端末にフォルダが作成されない場合、Selective Syncの設定が無効となっていないかを確認してみて下さい。

ここまでの設定を行えば、Dropboxの各アプリフォルダへファイルの追加や編集が行えます。

デプロイ

変更したコードをデプロイする準備が整いましたら、ダッシュボード内の入力欄に、今回の変更点に関する短い説明を入力し、「Deploy」ボタンを押します。入力した文章はコミットメッセージとして扱われ、共同で作業している人達(そして将来のあなた自身)へ変更点を伝えるのに役立ちます。

変更したコードをデプロイしたい場合、Herokuダッシュボードから「Deploy」ボタンを押す必要があります。変更点が自動的に同期されることはありません。

ダッシュボードにリリースの進行状況が表示されます。全てのリリース状況が、各アプリ内にある「Activity」タブにて追跡可能となります。

注意: Dropbox内のどのフォルダからでもデプロイ出来るわけではありません。Herokuが作成したDropbox/Apps/Herokuフォルダのみが有効となります。既存のコードに関しては、まずはHerokuとDropboxをリンクさせ、HerokuがDropbox内にDropbox/Apps/Herokuフォルダを作成するのを待って下さい。フォルダが作成された後、そのフォルダへ既存のコードを移動させるなり、コピーするなりして下さい。

コラボレーション

Dropbox Syncは、Herokuのコラボレーションモデルの思想をもとにしています。Dropboxからのデプロイされた変更は、アプリのGitリポジトリへもコミットされます。Heroku側も同様に、GitへのプッシュをDropboxのフォルダへ同期します。

アプリのコラボレーターは、各々のDropboxのアカウントをアプリとリンクさせることが可能です。Dropboxを使用しているコラボレーターは、各々のDropbox内にアプリのフォルダを所有することになります。アプリの変更は、リンクされている全てのコラボレーターのDropboxフォルダへ自動的に同期されます。また、Gitを使用しているコラボレーターは、Dropboxを使用してデプロイされた変更をプルすることが可能です。

注意: Herokuとリンクしているアプリのフォルダを、Dropbox側のコラボレーションモデルで使用することは出来ません。Dropboxでのみ管理しているアプリのフォルダは、シェアすることが出来ないからです。

force pushについて

もし、コラボレーターがHerokuのGitリポジトリへforce push(git push heroku master -f)してしまった場合、Herokuは、いかなるコラボレーターのDropboxフォルダへもリンクを行いません。(force pushをしてしまったユーザーが、Dropbox Syncを使用していた場合、このユーザーのDropboxフォルダへもリンクを行いません。)Heroku側がこの動作となるのは、force pushされたことをDropbox側に伝える適切なdiffの生成方法が存在しないからです。

Dropboxのリンクを解除する

Dropboxからアプリのリンクを解除するには、各アプリの「Code」タブで行います。アプリのリンクが解除された後、Dropbox内にアプリ用のフォルダが残ることとなりますが、Heroku側でアプリの変更が行われたとしても、そのフォルダへは更新は行われません。

また、HerokuとDropboxのリンクを完全に解除する場合は、Herokuアカウントのアプリケーションタブにて行います。

FAQ

.gitignoreとignoreされるファイル

Dropboxからデプロイされた変更をHerokuのGitリポジトリへコミットする際、Dropbox Syncは、Dropboxフォルダ内の.gitignore を参照します。.gitignoreに記述されたパターンにマッチするDropboxのファイルやディレクトリは、Herokuのリポジトリへはコミットされません。

また、Dropboxのサービスは、desktop.inithumbs.db.ds_storeのようなファイルをignoreすることも注意しておいて下さい。詳細は、Dropboxのドキュメント を参照して下さい。

アプリの名称変更

Heroku側でDropboxと同期しているアプリの名称変更を行うと、Herokuはアプリの新しい名前を関連づけるために、Dropbox側のフォルダ名の変更も行います。

Dropbox側でHerokuのアプリと連携しているフォルダ名を変更すると、Herokuは、名称変更を行ったユーザーのDropboxアカウントとアプリとのリンクを解除します。

Dropboxフォルダ内のコンフリクトファイル

Dropboxからのデプロイ時、Dropboxのフォルダがコンフリクト(例:競合コピー)の結果として生成されたファイルを管理していた場合、エラーが発生することとなります。その場合は、Dropboxフォルダのコンフリクトを解決し、不要なコピーを削除した後で、再度、デプロイを試みて下さい。

Clone this wiki locally