# # # delete "netsync.hh" # # patch "annotate.hh" # from [eee021dc5b355bfbe2d8d5aadd436d40e9003688] # to [0f72356a416fc60ea888a71d59dc55d391d272dd] # # patch "asciik.cc" # from [bcfb0cfeedee147b004437109084563445716da3] # to [d5f28c70d0433dec7d0db7e1f035ea8a12ebbdd2] # # patch "cmd.hh" # from [71f33193fdfa54bdc1f9b89ed8b290c8e6eff9cf] # to [5c6809b9a65951b6e69d3bb80ff2d6d42781c511] # # patch "cmd_automate.cc" # from [5ed92bb941b4c560f73a7c5b86899235e40b3f5c] # to [69aefb502195a4d228f1cc39045ee72d42958b84] # # patch "cmd_db.cc" # from [ee7051945ff187140d9890ac10fd8c84db6171b8] # to [a897d7dfbaa499adc2c8279d0f051eaa30f4e635] # # patch "cmd_diff_log.cc" # from [3cbde32f82993189490ae13350e2f8fccaf1413d] # to [1b7f8c23e25beaa81669eefb504de8315b7fbd4d] # # patch "cmd_files.cc" # from [72458229d78da72f97c4f410daf9eefb47b1e33f] # to [17de5623905f507598b21286d65d96870096e086] # # patch "cmd_key_cert.cc" # from [fb3fe93f13539c29f9c8ef4b2dfad9a84ce3302e] # to [368ba5326304c4ddb7e403dc1df455d05ab31a73] # # patch "cmd_list.cc" # from [87adfa5ac893ed93b4244093eb1c66052afae20a] # to [0ff9de55b90f18b284382b82ebfd43b405567a41] # # patch "cmd_merging.cc" # from [8a04f717c45b70ed6685a8681752d3f977973c29] # to [af61f02853172ea7a6c53cee6579c0220766d53d] # # patch "cmd_netsync.cc" # from [3480dd77ea18cca0fe7842b0d4807f7e7183a76f] # to [85389e376de990a6beb16c7cef2a9508e58c460c] # # patch "cmd_othervcs.cc" # from [3f891d529949dc55ec8e87ec81ca11919f6077e6] # to [daf6234e9e5fa47816ab74830e2de1973fe44712] # # patch "cmd_packet.cc" # from [3812d4cf1a3b051160ffe8aee9a4b3d44834df37] # to [ff0d753e667e71cb26fa883ba005bed5925ee092] # # patch "cmd_ws_commit.cc" # from [022a9615a7164baad7f2ad21ea8f6fead608022f] # to [981134c77ca685b9872bfffe1814efefb686a7f8] # # patch "commands.cc" # from [46827c06695551b7eed2d3aa76c092cd02e9162e] # to [e9e613f86dbf927a347ae4fdc1861440f93abde0] # # patch "commands.hh" # from [40f8cd23665763c729da1e92e03128d77596748e] # to [ca9f64fec576524a9f7ca2cf84c75bb3f6eee05a] # # patch "database_check.hh" # from [4ff771bf8572154a4e61d96149cc2b241415d293] # to [7eca5ad97cb55d834bf24245fb1c64a7f30139ed] # # patch "diff_patch.cc" # from [9ec190aaff6eaa68423ace4bf4246c3ef0a13c0d] # to [5437f74550a59622f0aca36b00dd43f104b7692a] # # patch "diff_patch.hh" # from [e1d0a668ab9072a5db4551f7b557befc843eb8bd] # to [f80e158dc7f4b50ac1ce4157896c226e95acfc54] # # patch "enumerator.cc" # from [876a65fddaf09ddc8ca926ad20d6c47c4898f205] # to [eec6cead8d287bcb00376bb9f2ed8a48fad7f229] # # patch "enumerator.hh" # from [5d8ef9aac51c2815503c610b8c1f0baa41f77dd8] # to [8574278f53e06d0a6d1a80a6983f6ae04a0043f4] # # patch "merge.cc" # from [eefe68a4d7028949498fd89e6014adb343dec991] # to [1a06c3dfc96557c0608d1450917ca071dc4795b2] # # patch "merge.hh" # from [35aea0031a7be333741e4c12916243b2c21724ba] # to [42ee1885e4d911e3ff29434b3a417f64c64f9048] # # patch "merkle_tree.hh" # from [68dc85f2776c70faeff120087cedc74120d934ff] # to [1bdeaecf058eafd70ae8b71835c8076f51594961] # # patch "netcmd.hh" # from [51ac9116aaec71bcb8ecd7baaa0885cda65dcf90] # to [086951d7f8531e3ee22bf223a6f59d6bcda9fb62] # # patch "netsync.cc" # from [980624824bf280f7704e4c004a06e6d96c86798c] # to [b162d327e4854e204ec02ef5f3fd0e0be2c42596] # # patch "refiner.cc" # from [fd4795cb306c92c03cac8e9463551562c1f14f37] # to [c4bacfb1eadaa252c39136468356585bdeebcc77] # # patch "refiner.hh" # from [66938922057cfdd7aa84b4dcb0d9640c8ac7da1f] # to [9a8c4cec8421bdd8f8f56106c21dda20ab17d2bf] # # patch "restrictions.cc" # from [38f614e7645621a666c1a4e72c5308ab66d6fc6a] # to [3b059a0327f0bea5958a1eecfb2bbe9a3c525e10] # # patch "restrictions.hh" # from [e74a5433cbcb2d6bd514f1143699db0397df3df9] # to [a65df1d2fc5748b5c235663b4fed9d4b05c3a976] # # patch "revision.hh" # from [b11a0ac769526e664b296e1ac9e71f1dd0ff01c8] # to [5f873cb70641d7a40d9e17a897f318ab8f34026c] # # patch "roster.cc" # from [e0cc5ef2c194e9e9b28bb3ef8a16e326b992596a] # to [dfb22c69788162515c92abc16b52eee9c1e4f75e] # # patch "roster.hh" # from [3e5486202286017c48afed38d1de561e42bd670d] # to [0df1174eb4998443af6c94143f46eb3f8b383f31] # # patch "transforms.hh" # from [5d96e28af43c914295cc250c4e8a1708724511c5] # to [54ea9d901a7f870c2e5ee46b5c3a99e868eb1ad9] # # patch "update.hh" # from [aa070b20691c389d9ff8458443f37a9add12383e] # to [3bd04ff46a2287f0d679894af43d4edd89c3707e] # # patch "work.cc" # from [923e55fbbdefb8123ad42a101809a017a6a86188] # to [528c2330217aea20d4fdcf47b68705fcd6cfb152] # # patch "work_migration.cc" # from [cfc359b2ea7f152cbff71afd2a266c08b6ff539f] # to [ac0a022585fe14bec858290283b217bd7097b9ab] # ============================================================ --- annotate.hh eee021dc5b355bfbe2d8d5aadd436d40e9003688 +++ annotate.hh 0f72356a416fc60ea888a71d59dc55d391d272dd @@ -10,10 +10,9 @@ // implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR // PURPOSE. -#include "platform.hh" #include "vocab.hh" -#include "revision.hh" -#include "app_state.hh" +#include "roster.hh" +class app_state; void do_annotate(app_state &app, file_t file_node, revision_id rid, bool just_revs); ============================================================ --- asciik.cc bcfb0cfeedee147b004437109084563445716da3 +++ asciik.cc d5f28c70d0433dec7d0db7e1f035ea8a12ebbdd2 @@ -111,8 +111,9 @@ Loop: #include #include "asciik.hh" +#include "simplestring_xform.hh" #include "cmd.hh" -#include "simplestring_xform.hh" +#include "app_state.hh" using std::insert_iterator; using std::max; ============================================================ --- cmd.hh 71f33193fdfa54bdc1f9b89ed8b290c8e6eff9cf +++ cmd.hh 5c6809b9a65951b6e69d3bb80ff2d6d42781c511 @@ -1,8 +1,6 @@ #ifndef __CMD_HH__ #define __CMD_HH__ -#include - // Copyright (C) 2002 Graydon Hoare // // This program is made available under the GNU GPL version 2.0 or @@ -12,19 +10,16 @@ // implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR // PURPOSE. -#include "app_state.hh" #include "commands.hh" -#include "constants.hh" #include "options.hh" #include "sanity.hh" +class app_state; namespace commands { std::string const & hidden_group(); - using boost::shared_ptr; - struct command { // NB: these strings are stored _un_translated, because we cannot @@ -88,38 +83,6 @@ complete(app_state & app, std::set & completion, bool must_exist=true); -template -static void -complete(app_state & app, - std::string const & str, - ID & completion) -{ - N(str.find_first_not_of(constants::legal_id_bytes) == std::string::npos, - F("non-hex digits in id")); - if (str.size() == constants::idlen) - { - completion = ID(str); - return; - } - std::set completions; - app.db.complete(str, completions); - N(completions.size() != 0, - F("partial id '%s' does not have an expansion") % str); - if (completions.size() > 1) - { - std::string err = - (F("partial id '%s' has multiple ambiguous expansions:") - % str).str(); - for (typename std::set::const_iterator i = completions.begin(); - i != completions.end(); ++i) - err += (i->inner()() + "\n"); - N(completions.size() == 1, i18n_format(err)); - } - completion = *(completions.begin()); - P(F("expanded partial id '%s' to '%s'") - % str % completion); -} - void notify_if_multiple_heads(app_state & app); @@ -129,11 +92,6 @@ process_commit_message_args(bool & given app_state & app, utf8 message_prefix = utf8("")); -void -get_content_paths(roster_t const & roster, - std::map & paths); - #define CMD(C, group, params, desc, opts) \ namespace commands { \ struct cmd_ ## C : public command \ ============================================================ --- cmd_automate.cc 5ed92bb941b4c560f73a7c5b86899235e40b3f5c +++ cmd_automate.cc 69aefb502195a4d228f1cc39045ee72d42958b84 @@ -11,6 +11,7 @@ #include #include "cmd.hh" +#include "app_state.hh" using std::istream; using std::make_pair; ============================================================ --- cmd_db.cc ee7051945ff187140d9890ac10fd8c84db6171b8 +++ cmd_db.cc a897d7dfbaa499adc2c8279d0f051eaa30f4e635 @@ -14,6 +14,8 @@ #include "cmd.hh" #include "database_check.hh" #include "revision.hh" +#include "constants.hh" +#include "app_state.hh" using std::cin; using std::cout; ============================================================ --- cmd_diff_log.cc 3cbde32f82993189490ae13350e2f8fccaf1413d +++ cmd_diff_log.cc 1b7f8c23e25beaa81669eefb504de8315b7fbd4d @@ -23,6 +23,7 @@ #include "rev_height.hh" #include "simplestring_xform.hh" #include "transforms.hh" +#include "app_state.hh" using std::cout; using std::deque; ============================================================ --- cmd_files.cc 72458229d78da72f97c4f410daf9eefb47b1e33f +++ cmd_files.cc 17de5623905f507598b21286d65d96870096e086 @@ -10,11 +10,13 @@ #include #include "annotate.hh" +#include "revision.hh" #include "cmd.hh" #include "diff_patch.hh" #include "file_io.hh" #include "simplestring_xform.hh" #include "transforms.hh" +#include "app_state.hh" using std::cout; using std::ostream_iterator; ============================================================ --- cmd_key_cert.cc fb3fe93f13539c29f9c8ef4b2dfad9a84ce3302e +++ cmd_key_cert.cc 368ba5326304c4ddb7e403dc1df455d05ab31a73 @@ -14,6 +14,7 @@ #include "cert.hh" #include "charset.hh" #include "cmd.hh" +#include "app_state.hh" #include "keys.hh" #include "transforms.hh" #include "ssh_agent.hh" ============================================================ --- cmd_list.cc 87adfa5ac893ed93b4244093eb1c66052afae20a +++ cmd_list.cc 0ff9de55b90f18b284382b82ebfd43b405567a41 @@ -27,6 +27,7 @@ #include "transforms.hh" #include "ui.hh" #include "vocab_cast.hh" +#include "app_state.hh" using std::cout; using std::make_pair; ============================================================ --- cmd_merging.cc 8a04f717c45b70ed6685a8681752d3f977973c29 +++ cmd_merging.cc af61f02853172ea7a6c53cee6579c0220766d53d @@ -22,6 +22,7 @@ #include "work.hh" #include "safe_map.hh" #include "ui.hh" +#include "app_state.hh" using std::cout; using std::make_pair; ============================================================ --- cmd_netsync.cc 3480dd77ea18cca0fe7842b0d4807f7e7183a76f +++ cmd_netsync.cc 85389e376de990a6beb16c7cef2a9508e58c460c @@ -1,7 +1,7 @@ #include "cmd.hh" #include "diff_patch.hh" -#include "netsync.hh" +#include "netcmd.hh" #include "globish.hh" #include "keys.hh" #include "cert.hh" @@ -10,8 +10,8 @@ #include "uri.hh" #include "vocab_cast.hh" #include "platform-wrapped.hh" +#include "app_state.hh" - #include using std::ifstream; ============================================================ --- cmd_othervcs.cc 3f891d529949dc55ec8e87ec81ca11919f6077e6 +++ cmd_othervcs.cc daf6234e9e5fa47816ab74830e2de1973fe44712 @@ -8,6 +8,7 @@ // PURPOSE. #include "cmd.hh" +#include "app_state.hh" #include "rcs_import.hh" using std::vector; ============================================================ --- cmd_packet.cc 3812d4cf1a3b051160ffe8aee9a4b3d44834df37 +++ cmd_packet.cc ff0d753e667e71cb26fa883ba005bed5925ee092 @@ -11,6 +11,7 @@ #include #include "cmd.hh" +#include "app_state.hh" #include "packet.hh" using std::cin; ============================================================ --- cmd_ws_commit.cc 022a9615a7164baad7f2ad21ea8f6fead608022f +++ cmd_ws_commit.cc 981134c77ca685b9872bfffe1814efefb686a7f8 @@ -19,6 +19,7 @@ #include "work.hh" #include "charset.hh" #include "ui.hh" +#include "app_state.hh" using std::cout; using std::make_pair; ============================================================ --- commands.cc 46827c06695551b7eed2d3aa76c092cd02e9162e +++ commands.cc e9e613f86dbf927a347ae4fdc1861440f93abde0 @@ -20,6 +20,8 @@ #include "cert.hh" #include "ui.hh" #include "cmd.hh" +#include "constants.hh" +#include "app_state.hh" #ifndef _WIN32 #include @@ -498,24 +500,6 @@ process_commit_message_args(bool & given given = false; } -void -get_content_paths(roster_t const & roster, map & paths) -{ - node_map const & nodes = roster.all_nodes(); - for (node_map::const_iterator i = nodes.begin(); i != nodes.end(); ++i) - { - node_t node = roster.get_node(i->first); - if (is_file_t(node)) - { - split_path sp; - roster.get_name(i->first, sp); - file_t file = downcast_to_file_t(node); - paths.insert(make_pair(file->content, file_path(sp))); - } - } -} - - // Local Variables: // mode: C++ // fill-column: 76 ============================================================ --- commands.hh 40f8cd23665763c729da1e92e03128d77596748e +++ commands.hh ca9f64fec576524a9f7ca2cf84c75bb3f6eee05a @@ -12,21 +12,14 @@ #include #include -#include -#include - #include "options.hh" -#include "vocab.hh" +class app_state; +class utf8; -using boost::shared_ptr; - // this defines a global function which processes command-line-like things, // possibly from the command line and possibly internal scripting if we ever // bind tcl or lua or something in here -class app_state; -class utf8; - struct usage { usage(std::string const & w) : which(w) {} @@ -36,7 +29,8 @@ namespace commands { namespace commands { void explain_usage(std::string const & cmd, std::ostream & out); std::string complete_command(std::string const & cmd); - int process(app_state & app, std::string const & cmd, std::vector const & args); + int process(app_state & app, std::string const & cmd, + std::vector const & args); options::options_type command_options(std::vector const & cmdline); options::options_type toplevel_command_options(std::string const & cmd); }; ============================================================ --- database_check.hh 4ff771bf8572154a4e61d96149cc2b241415d293 +++ database_check.hh 7eca5ad97cb55d834bf24245fb1c64a7f30139ed @@ -10,7 +10,7 @@ // implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR // PURPOSE. -#include "app_state.hh" +class app_state; void check_db(app_state & app); ============================================================ --- diff_patch.cc 9ec190aaff6eaa68423ace4bf4246c3ef0a13c0d +++ diff_patch.cc 5437f74550a59622f0aca36b00dd43f104b7692a @@ -30,6 +30,7 @@ #include "revision.hh" #include "constants.hh" #include "file_io.hh" +#include "app_state.hh" using std::make_pair; using std::map; ============================================================ --- diff_patch.hh e1d0a668ab9072a5db4551f7b557befc843eb8bd +++ diff_patch.hh f80e158dc7f4b50ac1ce4157896c226e95acfc54 @@ -10,9 +10,8 @@ // implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR // PURPOSE. -#include "app_state.hh" -#include "cert.hh" #include "vocab.hh" +#include "roster.hh" #include @@ -20,7 +19,7 @@ #include #include -class roster_t; +class app_state; struct conflict {}; ============================================================ --- enumerator.cc 876a65fddaf09ddc8ca926ad20d6c47c4898f205 +++ enumerator.cc eec6cead8d287bcb00376bb9f2ed8a48fad7f229 @@ -16,6 +16,7 @@ #include "enumerator.hh" #include "revision.hh" #include "vocab.hh" +#include "app_state.hh" using std::make_pair; using std::map; ============================================================ --- enumerator.hh 5d8ef9aac51c2815503c610b8c1f0baa41f77dd8 +++ enumerator.hh 8574278f53e06d0a6d1a80a6983f6ae04a0043f4 @@ -15,8 +15,8 @@ #include #include -#include "app_state.hh" #include "vocab.hh" +class app_state; // The revision_enumerator struct acts as a cursor which emits files, // deltas, revisions and certs in dependency-correct order. This is ============================================================ --- merge.cc eefe68a4d7028949498fd89e6014adb343dec991 +++ merge.cc 1a06c3dfc96557c0608d1450917ca071dc4795b2 @@ -17,6 +17,7 @@ #include "roster_merge.hh" #include "safe_map.hh" #include "transforms.hh" +#include "app_state.hh" using std::make_pair; using std::map; ============================================================ --- merge.hh 35aea0031a7be333741e4c12916243b2c21724ba +++ merge.hh 42ee1885e4d911e3ff29434b3a417f64c64f9048 @@ -10,11 +10,10 @@ // implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR // PURPOSE. -#include +#include "vocab.hh" -#include "app_state.hh" -#include "vocab.hh" -#include "roster.hh" +class app_state; +class roster_t; // Destructively alter a roster_merge_result to attempt to remove any // conflicts in it. Takes a content_merge_adaptor to pass on to the content ============================================================ --- merkle_tree.hh 68dc85f2776c70faeff120087cedc74120d934ff +++ merkle_tree.hh 1bdeaecf058eafd70ae8b71835c8076f51594961 @@ -11,15 +11,14 @@ // PURPOSE. #include +#include #include +#include #include -#include "app_state.hh" -#include "numeric_vocab.hh" #include "vocab.hh" #include "transforms.hh" -//#include #include "hash_map.hh" // This file contains data structures and functions for managing merkle @@ -91,23 +90,6 @@ typedef boost::shared_ptr m typedef boost::shared_ptr merkle_ptr; -//typedef std::map, merkle_ptr> merkle_table; -/* -namespace std { - namespace tr1 { - template<> - struct hash > - : public std::unary_function, std::size_t> { - hash h; - hash t; - std::size_t operator()(std::pair const & val) const { - return h(val.first()) + t(val.second); - } - }; - } -} -typedef std::tr1::unordered_map, merkle_ptr> merkle_table; -*/ typedef std::pair merkle_node_id; namespace hashmap { template<> ============================================================ --- netcmd.hh 51ac9116aaec71bcb8ecd7baaa0885cda65dcf90 +++ netcmd.hh 086951d7f8531e3ee22bf223a6f59d6bcda9fb62 @@ -22,6 +22,13 @@ typedef enum typedef enum { + server_voice, + client_voice + } +protocol_voice; + +typedef enum + { source_role = 1, sink_role = 2, source_and_sink_role = 3 @@ -162,6 +169,14 @@ public: }; +class app_state; +void run_netsync_protocol(protocol_voice voice, + protocol_role role, + utf8 const & addr, + globish const & include_pattern, + globish const & exclude_pattern, + app_state & app); + // Local Variables: // mode: C++ // fill-column: 76 ============================================================ --- netsync.cc 980624824bf280f7704e4c004a06e6d96c86798c +++ netsync.cc b162d327e4854e204ec02ef5f3fd0e0be2c42596 @@ -31,7 +31,6 @@ #include "merkle_tree.hh" #include "netcmd.hh" #include "netio.hh" -#include "netsync.hh" #include "numeric_vocab.hh" #include "refiner.hh" #include "revision.hh" ============================================================ --- refiner.cc fd4795cb306c92c03cac8e9463551562c1f14f37 +++ refiner.cc c4bacfb1eadaa252c39136468356585bdeebcc77 @@ -18,7 +18,6 @@ #include "vocab.hh" #include "merkle_tree.hh" #include "netcmd.hh" -#include "netsync.hh" using std::inserter; using std::make_pair; ============================================================ --- refiner.hh 66938922057cfdd7aa84b4dcb0d9640c8ac7da1f +++ refiner.hh 9a8c4cec8421bdd8f8f56106c21dda20ab17d2bf @@ -15,7 +15,6 @@ #include "vocab.hh" #include "merkle_tree.hh" #include "netcmd.hh" -#include "netsync.hh" // This file defines the "refiner" class, which is a helper encapsulating // the main tricky part of the netsync algorithm. You must construct a ============================================================ --- restrictions.cc 38f614e7645621a666c1a4e72c5308ab66d6fc6a +++ restrictions.cc 3b059a0327f0bea5958a1eecfb2bbe9a3c525e10 @@ -15,6 +15,7 @@ #include "revision.hh" #include "safe_map.hh" #include "transforms.hh" +#include "app_state.hh" using std::make_pair; using std::map; ============================================================ --- restrictions.hh e74a5433cbcb2d6bd514f1143699db0397df3df9 +++ restrictions.hh a65df1d2fc5748b5c235663b4fed9d4b05c3a976 @@ -27,11 +27,11 @@ // (commit and revert) to be "tested" first with non-destructive commands // (ls unknown/ignored/missing/known, status, diff) -#include "app_state.hh" -#include "cset.hh" -#include "roster.hh" #include "vocab.hh" +#include "database.hh" // for parent_map +class app_state; + // between any two related revisions, A and B, there is a set of changes (a // cset) that describes the operations required to get from A to B. for example: // ============================================================ --- revision.hh b11a0ac769526e664b296e1ac9e71f1dd0ff01c8 +++ revision.hh 5f873cb70641d7a40d9e17a897f318ab8f34026c @@ -15,10 +15,12 @@ #include -#include "app_state.hh" #include "cset.hh" #include "vocab.hh" +#include "database.hh" +class app_state; + // a revision is a text object. It has a precise, normalizable serial form // as UTF-8 text. it also has some sub-components. not all of these // sub-components are separately serialized (they could be but there is no ============================================================ --- roster.cc e0cc5ef2c194e9e9b28bb3ef8a16e326b992596a +++ roster.cc dfb22c69788162515c92abc16b52eee9c1e4f75e @@ -2364,6 +2364,23 @@ roster_t::extract_path_set(path_set & pa } } +// ??? make more similar to the above (member function, use dfs_iter) +void +get_content_paths(roster_t const & roster, map & paths) +{ + node_map const & nodes = roster.all_nodes(); + for (node_map::const_iterator i = nodes.begin(); i != nodes.end(); ++i) + { + node_t node = roster.get_node(i->first); + if (is_file_t(node)) + { + split_path sp; + roster.get_name(i->first, sp); + file_t file = downcast_to_file_t(node); + paths.insert(make_pair(file->content, file_path(sp))); + } + } +} //////////////////////////////////////////////////////////////////// // I/O routines ============================================================ --- roster.hh 3e5486202286017c48afed38d1de561e42bd670d +++ roster.hh 0df1174eb4998443af6c94143f46eb3f8b383f31 @@ -374,8 +374,8 @@ void std::set & nodes_modified); void -extract_roster_path_set(roster_t const & ros, - path_set & paths); +get_content_paths(roster_t const & roster, + std::map & paths); // These functions are for the use of things like 'update' or 'pluck', that // need to construct fake rosters and/or markings in-memory, to achieve ============================================================ --- transforms.hh 5d96e28af43c914295cc250c4e8a1708724511c5 +++ transforms.hh 54ea9d901a7f870c2e5ee46b5c3a99e868eb1ad9 @@ -12,8 +12,6 @@ #include "vocab.hh" -#include - // this file contans various sorts of string transformations. each // transformation should be self-explanatory from its type signature. see // transforms.cc for the implementations (most of which are delegations to @@ -38,7 +36,7 @@ template std::string xform return in; // avoid warnings about no return statement } -// these specializations of the template are defined in transforms.hh +// these specializations of the template are defined in transforms.cc template<> std::string xform(std::string const &); template<> std::string xform(std::string const &); template<> std::string xform(std::string const &); ============================================================ --- update.hh aa070b20691c389d9ff8458443f37a9add12383e +++ update.hh 3bd04ff46a2287f0d679894af43d4edd89c3707e @@ -11,9 +11,9 @@ // PURPOSE. #include +#include "vocab.hh" -#include "app_state.hh" -#include "vocab.hh" +class app_state; // this function just encapsulates the (somewhat complex) logic // behind picking an update target. the actual updating takes ============================================================ --- work.cc 923e55fbbdefb8123ad42a101809a017a6a86188 +++ work.cc 528c2330217aea20d4fdcf47b68705fcd6cfb152 @@ -12,6 +12,8 @@ #include #include +#include + #include "work.hh" #include "basic_io.hh" #include "cset.hh" @@ -26,6 +28,7 @@ #include "diff_patch.hh" #include "ui.hh" #include "charset.hh" +#include "lua_hooks.hh" using std::deque; using std::exception; ============================================================ --- work_migration.cc cfc359b2ea7f152cbff71afd2a266c08b6ff539f +++ work_migration.cc ac0a022585fe14bec858290283b217bd7097b9ab @@ -11,6 +11,8 @@ #include "ui.hh" #include "simplestring_xform.hh" #include "revision.hh" +#include "file_io.hh" +#include "work.hh" #include #include