私は、人々が物語を提出し、他の人々が貢献できるようなプロジェクトに取り組んでいます。単にデータベースのエントリを編集するのではなく、新しい変更のセット全体ではなく、人が行う変更を保存したいと思います。その後、以前のバージョンに戻したい場合は、差分を動的に適用できます。編集者であるユーザーには変更されたテキストのみを簡単に提示することができます。その結果、変更が正しく反映されます。ファイルの代わりに文字列を変更してパッチ/マージする方法はありますか?
私はdiffファイルを取得し、他のファイルにパッチを適用する方法を知っています。しかし、私はPythonとDjangoでWebアプリケーションを作っています。これらの差分をすべてMySQLデータベースに格納します。パフォーマンスがこのアプリの主要な問題ではないことを考えると、私はDBからデータを取り出し、ファイルを作成し、それらのファイルにgit diff
とpatch
を実行する準備ができています。
新しいバージョンを作成したり、新しい差分を適用したりするたびに、新しいファイルを作成して削除するよりも良い方法はありますか?ファイルの代わりにストレートテキストで差分を実行する方法はありますか?例えば。 bashの変数をファイルの内容(実際にはDBのデータ)に設定し、git diff
を実行していますか?ユーザーがフォームを送信した後、これらのアクションをPythonファイルから制御したいと思います。
私は実際にこの問題を始めるには良い方法を探しています。だから、どんな助けでも大歓迎です。お時間を
おかげで、
ParagonRG
は、あなたは確かに代わり、データベース内のフルテキストの差分を保存するの原則を適用することができますが、それはあなたが目的でVCSを使用するだろうと少し奇妙です。 ..(あなたはhttp://docs.python.org/library/difflib.htmlを見ましたか?) – geoffspear
ありがとう、これを今見て! – Paragon
残念ながら、difflibは、テキスト全体とその変更を保存するdiffを使用しない限り、diffからテキストを再構築することはできませんでした。したがって私はこれを行うためのモジュールを作りました。下の私の答えを見てください。 – Paragon