-
Notifications
You must be signed in to change notification settings - Fork 9
Dropbox Sync
警告 この記事は、beta版機能の記載となります。正式版に先行してのリリースとなるので、機能が変更となる可能性があります。
Dropbox Syncは、Herokuのbeta版機能となります。DropboxとHerokuのアカウントをリンクさせることで、DropboxフォルダのコンテンツをHerokuへデプロイすることが可能となります。
Dropbox Syncのセットアップとデプロイ機能は、Herokuダッシュボードの各アプリの「Code」タブで利用可能です。
リンクを行っていない場合、Dropboxは、あなたのDropboxアカウントの Dropbox/Apps/Heroku
フォルダへアクセスを行えるよう求めて来ます。
あなたがアクセスを許可すると、Dropbox/Apps/Heroku/app-name
フォルダが作成されます。もし、既にHerokuのリポジトリにコードが管理されている場合(git pushまたはHerokuボタンでデプロイ済みの場合)、Herokuはそのコードを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でのみ管理しているアプリのフォルダは、シェアすることが出来ないからです。
もし、コラボレーターがHerokuのGitリポジトリへforce push(git push heroku master -f
)してしまった場合、Herokuは、いかなるコラボレーターのDropboxフォルダへもリンクを行いません。(force pushをしてしまったユーザーが、Dropbox Syncを使用していた場合、このユーザーのDropboxフォルダへもリンクを行いません。)Heroku側がこの動作となるのは、force pushされたことをDropbox側に伝える適切なdiffの生成方法が存在しないからです。
Dropboxからアプリのリンクを解除するには、各アプリの「Code」タブで行います。アプリのリンクが解除された後、Dropbox内にアプリ用のフォルダが残ることとなりますが、Heroku側でアプリの変更が行われたとしても、そのフォルダへは更新は行われません。
また、HerokuとDropboxのリンクを完全に解除する場合は、Herokuアカウントのアプリケーションタブにて行います。
Dropboxからデプロイされた変更をHerokuのGitリポジトリへコミットする際、Dropbox Syncは、Dropboxフォルダ内の.gitignore
を参照します。.gitignoreに記述されたパターンにマッチするDropboxのファイルやディレクトリは、Herokuのリポジトリへはコミットされません。
また、Dropboxのサービスは、desktop.ini
、thumbs.db
、.ds_store
のようなファイルをignoreすることも注意しておいて下さい。詳細は、Dropboxのドキュメント を参照して下さい。
Heroku側でDropboxと同期しているアプリの名称変更を行うと、Herokuはアプリの新しい名前を関連づけるために、Dropbox側のフォルダ名の変更も行います。
Dropbox側でHerokuのアプリと連携しているフォルダ名を変更すると、Herokuは、名称変更を行ったユーザーのDropboxアカウントとアプリとのリンクを解除します。
Dropboxからのデプロイ時、Dropboxのフォルダがコンフリクト(例:競合コピー)の結果として生成されたファイルを管理していた場合、エラーが発生することとなります。その場合は、Dropboxフォルダのコンフリクトを解決し、不要なコピーを削除した後で、再度、デプロイを試みて下さい。