{"action":"created","comment":{"url":"https://api.github.com/repos/KSP-KOS/KOS/pulls/comments/62381334","id":62381334,"diff_hunk":"@@ -6,9 +6,136 @@\n using kOS.Safe.Utilities;\n using kOS.Serialization;\n using System;\n+using KSP.IO;\n+using kOS.Safe;\n+using kOS.Safe.Compilation;\n+using System.Collections.Generic;\n \n namespace kOS.Function\n {\n+    /*\n+     * A couple of syntaxes from kRISC.tpg were deprecated when subdirectories where introduced. It will be possible to\n+     * remove these function below as well any metions of delete/rename file/rename volume/copy from kRISC.tpg in the future.\n+     */\n+    [Function(\"copy_deprecated\")]\n+    public class FunctionCopyDeprecated : FunctionBase\n+    {\n+        public override void Execute(SharedObjects shared)\n+        {\n+            PopValueAssert(shared, true);\n+            PopValueAssert(shared, true);\n+            PopValueAssert(shared, true);\n+            AssertArgBottomAndConsume(shared);\n+\n+            throw new KOSDeprecationException(\"1.0.0\", \"`COPY FILENAME FROM VOLUMEID.` syntax\", \"`COPYPATH(FROMPATH, TOPATH)`\", string.Empty);","path":"src/kOS/Function/Persistence.cs","position":25,"original_position":25,"commit_id":"7f2c23b6e0728bae19cc2137718f33c5941f25d9","original_commit_id":"7f2c23b6e0728bae19cc2137718f33c5941f25d9","user":{"login":"Dunbaratu","id":5216848,"avatar_url":"https://avatars.githubusercontent.com/u/5216848?v=3","gravatar_id":"","url":"https://api.github.com/users/Dunbaratu","html_url":"https://github.com/Dunbaratu","followers_url":"https://api.github.com/users/Dunbaratu/followers","following_url":"https://api.github.com/users/Dunbaratu/following{/other_user}","gists_url":"https://api.github.com/users/Dunbaratu/gists{/gist_id}","starred_url":"https://api.github.com/users/Dunbaratu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Dunbaratu/subscriptions","organizations_url":"https://api.github.com/users/Dunbaratu/orgs","repos_url":"https://api.github.com/users/Dunbaratu/repos","events_url":"https://api.github.com/users/Dunbaratu/events{/privacy}","received_events_url":"https://api.github.com/users/Dunbaratu/received_events","type":"User","site_admin":false},"body":"This isn't what \"deprecation\" is (maybe we should rename this exception to ``KOSObsoletionException``.)\r\n\"Deprecation\" means it still works but it's frowned upon.  It's a warning that it's *going* to become obsoleted later on, but hasn't *yet*.\r\n\r\nWhat an actual \"deprecation\" would do is throw a warning message on the screen but then redirect the call into the new technique so it still doesn't break the old scripts yet, but just annoys people using them enough to nag them to make the change.\r\n","created_at":"2016-05-06T19:46:40Z","updated_at":"2016-05-06T19:46:40Z","html_url":"https://github.com/KSP-KOS/KOS/pull/1567#discussion_r62381334","pull_request_url":"https://api.github.com/repos/KSP-KOS/KOS/pulls/1567","_links":{"self":{"href":"https://api.github.com/repos/KSP-KOS/KOS/pulls/comments/62381334"},"html":{"href":"https://github.com/KSP-KOS/KOS/pull/1567#discussion_r62381334"},"pull_request":{"href":"https://api.github.com/repos/KSP-KOS/KOS/pulls/1567"}}},"pull_request":{"url":"https://api.github.com/repos/KSP-KOS/KOS/pulls/1567","id":64318685,"html_url":"https://github.com/KSP-KOS/KOS/pull/1567","diff_url":"https://github.com/KSP-KOS/KOS/pull/1567.diff","patch_url":"https://github.com/KSP-KOS/KOS/pull/1567.patch","issue_url":"https://api.github.com/repos/KSP-KOS/KOS/issues/1567","number":1567,"state":"open","locked":false,"title":"Subdirectories","user":{"login":"tomekpiotrowski","id":1452213,"avatar_url":"https://avatars.githubusercontent.com/u/1452213?v=3","gravatar_id":"","url":"https://api.github.com/users/tomekpiotrowski","html_url":"https://github.com/tomekpiotrowski","followers_url":"https://api.github.com/users/tomekpiotrowski/followers","following_url":"https://api.github.com/users/tomekpiotrowski/following{/other_user}","gists_url":"https://api.github.com/users/tomekpiotrowski/gists{/gist_id}","starred_url":"https://api.github.com/users/tomekpiotrowski/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tomekpiotrowski/subscriptions","organizations_url":"https://api.github.com/users/tomekpiotrowski/orgs","repos_url":"https://api.github.com/users/tomekpiotrowski/repos","events_url":"https://api.github.com/users/tomekpiotrowski/events{/privacy}","received_events_url":"https://api.github.com/users/tomekpiotrowski/received_events","type":"User","site_admin":false},"body":"Fixes #1364, fixes #778, fixes #754, fixes #1136, fixes #969, fixes #1536 \r\n\r\nI've started to update my old subdirectories code. I should have time to work on it in the next few days and I hope to make solid progress on the whole subdirectories front.\r\n\r\n### Breaking changes:\r\n- Boot files are now expected to be placed in `boot` directory.\r\n- `delete filename from volume`, `copy filename from/to volume`, `rename (both forms)` have been deprecated in favor of `delete(path)`, `copy(fromPath, toPath)`, `move(fromPath, toPath)` and `set volume:name to newname`.\r\n\r\n### Here's an outline of things to do:\r\n\r\n- [x] Path handling types\r\n- [x] `VolumeDirectory` type\r\n- [x] Support directories on Archive\r\n- [x] Support directories on Harddisk\r\n- [x] Add directory support to Harddisk persistence\r\n- [x] Substitute all occurences of string filenames with `GlobalPath`\r\n- [x] Access path of the current script\r\n- [x] Userspace `Path` type\r\n- [x] `path()` command to create paths (`path` with no arguments creates a `Path` for the current path)\r\n- [x] `VolumeDirectory` as a userspace type\r\n- [x] Add a `volume()` command, to get a volume by name or id\r\n- [x] `Volume` suffixes should accept strings representing `VolumePath`s\r\n- [x] Expose all new stuff to the user, add new commands and change syntax wherever necessary\r\n- [x] `copypath()` command\r\n- [x] `movepath()` command\r\n- [x] commands that accept string paths should also work with instances of `Path`\r\n- [x] Make sure everything works (and doesn't work when it shouldn't) with RemoteTech\r\n- [x] Test with compressed persistence disabled and enabled\r\n- [x] Test everything with cooked filenames\r\n- [x] Revert the change to KOSDeprecationException\r\n- [x] List files from `boot` directory as bootfiles\r\n- [x] test case sensitivity on archive\r\n- [x] `Path` documentation\r\n- [x] Document new `Volume` suffixes\r\n- [ ] Document `path()`\r\n- [ ] Document `volume()`\r\n- [ ] Document `scriptpath()`\r\n- [ ] Document `cd()`\r\n- [ ] Document `copypath()`, `movepath()`, `deletepath()`\r\n- [ ] Document `createdir()`\r\n- [x] Document changes to `create()`, `exists()` and `open()`\r\n- [ ] `VolumeItem` documentation\r\n- [ ] `VolumeDirectory` documentation\r\n- [ ] Document new boot file handling\r\n- [ ] Review existing file IO documentation and update if necessary","created_at":"2016-03-28T12:53:32Z","updated_at":"2016-05-06T19:46:40Z","closed_at":null,"merged_at":null,"merge_commit_sha":"03c7c85102a806135a0114d87c3da38504a1ff6d","assignee":null,"milestone":{"url":"https://api.github.com/repos/KSP-KOS/KOS/milestones/20","html_url":"https://github.com/KSP-KOS/KOS/milestones/v1.0.0","labels_url":"https://api.github.com/repos/KSP-KOS/KOS/milestones/20/labels","id":1618450,"number":20,"title":"v1.0.0","description":"The next major release of kOS.  This should be expected _after_ KSP 1.1 is released, and will encompass bug fixes, new features, and updates to the user interface.  There will probably be a compatibility release that works with KSP 1.1 before this release, but the big changes to take advantage of KSP 1.1 and Unity 5 will be in this release.","creator":{"login":"hvacengi","id":2975036,"avatar_url":"https://avatars.githubusercontent.com/u/2975036?v=3","gravatar_id":"","url":"https://api.github.com/users/hvacengi","html_url":"https://github.com/hvacengi","followers_url":"https://api.github.com/users/hvacengi/followers","following_url":"https://api.github.com/users/hvacengi/following{/other_user}","gists_url":"https://api.github.com/users/hvacengi/gists{/gist_id}","starred_url":"https://api.github.com/users/hvacengi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hvacengi/subscriptions","organizations_url":"https://api.github.com/users/hvacengi/orgs","repos_url":"https://api.github.com/users/hvacengi/repos","events_url":"https://api.github.com/users/hvacengi/events{/privacy}","received_events_url":"https://api.github.com/users/hvacengi/received_events","type":"User","site_admin":false},"open_issues":34,"closed_issues":21,"state":"open","created_at":"2016-03-02T18:12:53Z","updated_at":"2016-05-05T15:56:54Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/KSP-KOS/KOS/pulls/1567/commits","review_comments_url":"https://api.github.com/repos/KSP-KOS/KOS/pulls/1567/comments","review_comment_url":"https://api.github.com/repos/KSP-KOS/KOS/pulls/comments{/number}","comments_url":"https://api.github.com/repos/KSP-KOS/KOS/issues/1567/comments","statuses_url":"https://api.github.com/repos/KSP-KOS/KOS/statuses/7f2c23b6e0728bae19cc2137718f33c5941f25d9","head":{"label":"tomekpiotrowski:new_subdirectories","ref":"new_subdirectories","sha":"7f2c23b6e0728bae19cc2137718f33c5941f25d9","user":{"login":"tomekpiotrowski","id":1452213,"avatar_url":"https://avatars.githubusercontent.com/u/1452213?v=3","gravatar_id":"","url":"https://api.github.com/users/tomekpiotrowski","html_url":"https://github.com/tomekpiotrowski","followers_url":"https://api.github.com/users/tomekpiotrowski/followers","following_url":"https://api.github.com/users/tomekpiotrowski/following{/other_user}","gists_url":"https://api.github.com/users/tomekpiotrowski/gists{/gist_id}","starred_url":"https://api.github.com/users/tomekpiotrowski/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tomekpiotrowski/subscriptions","organizations_url":"https://api.github.com/users/tomekpiotrowski/orgs","repos_url":"https://api.github.com/users/tomekpiotrowski/repos","events_url":"https://api.github.com/users/tomekpiotrowski/events{/privacy}","received_events_url":"https://api.github.com/users/tomekpiotrowski/received_events","type":"User","site_admin":false},"repo":{"id":37092395,"name":"KOS","full_name":"tomekpiotrowski/KOS","owner":{"login":"tomekpiotrowski","id":1452213,"avatar_url":"https://avatars.githubusercontent.com/u/1452213?v=3","gravatar_id":"","url":"https://api.github.com/users/tomekpiotrowski","html_url":"https://github.com/tomekpiotrowski","followers_url":"https://api.github.com/users/tomekpiotrowski/followers","following_url":"https://api.github.com/users/tomekpiotrowski/following{/other_user}","gists_url":"https://api.github.com/users/tomekpiotrowski/gists{/gist_id}","starred_url":"https://api.github.com/users/tomekpiotrowski/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tomekpiotrowski/subscriptions","organizations_url":"https://api.github.com/users/tomekpiotrowski/orgs","repos_url":"https://api.github.com/users/tomekpiotrowski/repos","events_url":"https://api.github.com/users/tomekpiotrowski/events{/privacy}","received_events_url":"https://api.github.com/users/tomekpiotrowski/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/tomekpiotrowski/KOS","description":"Fully programmable autopilot mod for KSP. Originally By Nivekk","fork":true,"url":"https://api.github.com/repos/tomekpiotrowski/KOS","forks_url":"https://api.github.com/repos/tomekpiotrowski/KOS/forks","keys_url":"https://api.github.com/repos/tomekpiotrowski/KOS/keys{/key_id}","collaborators_url":"https://api.github.com/repos/tomekpiotrowski/KOS/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/tomekpiotrowski/KOS/teams","hooks_url":"https://api.github.com/repos/tomekpiotrowski/KOS/hooks","issue_events_url":"https://api.github.com/repos/tomekpiotrowski/KOS/issues/events{/number}","events_url":"https://api.github.com/repos/tomekpiotrowski/KOS/events","assignees_url":"https://api.github.com/repos/tomekpiotrowski/KOS/assignees{/user}","branches_url":"https://api.github.com/repos/tomekpiotrowski/KOS/branches{/branch}","tags_url":"https://api.github.com/repos/tomekpiotrowski/KOS/tags","blobs_url":"https://api.github.com/repos/tomekpiotrowski/KOS/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/tomekpiotrowski/KOS/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/tomekpiotrowski/KOS/git/refs{/sha}","trees_url":"https://api.github.com/repos/tomekpiotrowski/KOS/git/trees{/sha}","statuses_url":"https://api.github.com/repos/tomekpiotrowski/KOS/statuses/{sha}","languages_url":"https://api.github.com/repos/tomekpiotrowski/KOS/languages","stargazers_url":"https://api.github.com/repos/tomekpiotrowski/KOS/stargazers","contributors_url":"https://api.github.com/repos/tomekpiotrowski/KOS/contributors","subscribers_url":"https://api.github.com/repos/tomekpiotrowski/KOS/subscribers","subscription_url":"https://api.github.com/repos/tomekpiotrowski/KOS/subscription","commits_url":"https://api.github.com/repos/tomekpiotrowski/KOS/commits{/sha}","git_commits_url":"https://api.github.com/repos/tomekpiotrowski/KOS/git/commits{/sha}","comments_url":"https://api.github.com/repos/tomekpiotrowski/KOS/comments{/number}","issue_comment_url":"https://api.github.com/repos/tomekpiotrowski/KOS/issues/comments{/number}","contents_url":"https://api.github.com/repos/tomekpiotrowski/KOS/contents/{+path}","compare_url":"https://api.github.com/repos/tomekpiotrowski/KOS/compare/{base}...{head}","merges_url":"https://api.github.com/repos/tomekpiotrowski/KOS/merges","archive_url":"https://api.github.com/repos/tomekpiotrowski/KOS/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/tomekpiotrowski/KOS/downloads","issues_url":"https://api.github.com/repos/tomekpiotrowski/KOS/issues{/number}","pulls_url":"https://api.github.com/repos/tomekpiotrowski/KOS/pulls{/number}","milestones_url":"https://api.github.com/repos/tomekpiotrowski/KOS/milestones{/number}","notifications_url":"https://api.github.com/repos/tomekpiotrowski/KOS/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/tomekpiotrowski/KOS/labels{/name}","releases_url":"https://api.github.com/repos/tomekpiotrowski/KOS/releases{/id}","deployments_url":"https://api.github.com/repos/tomekpiotrowski/KOS/deployments","created_at":"2015-06-08T20:57:51Z","updated_at":"2015-12-14T06:36:48Z","pushed_at":"2016-05-05T03:46:22Z","git_url":"git://github.com/tomekpiotrowski/KOS.git","ssh_url":"git@github.com:tomekpiotrowski/KOS.git","clone_url":"https://github.com/tomekpiotrowski/KOS.git","svn_url":"https://github.com/tomekpiotrowski/KOS","homepage":null,"size":99928,"stargazers_count":1,"watchers_count":1,"language":"C#","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":1,"default_branch":"develop"}},"base":{"label":"KSP-KOS:develop","ref":"develop","sha":"c3e842cd53a11ca4e7eace167ce554055dc62381","user":{"login":"KSP-KOS","id":6767371,"avatar_url":"https://avatars.githubusercontent.com/u/6767371?v=3","gravatar_id":"","url":"https://api.github.com/users/KSP-KOS","html_url":"https://github.com/KSP-KOS","followers_url":"https://api.github.com/users/KSP-KOS/followers","following_url":"https://api.github.com/users/KSP-KOS/following{/other_user}","gists_url":"https://api.github.com/users/KSP-KOS/gists{/gist_id}","starred_url":"https://api.github.com/users/KSP-KOS/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/KSP-KOS/subscriptions","organizations_url":"https://api.github.com/users/KSP-KOS/orgs","repos_url":"https://api.github.com/users/KSP-KOS/repos","events_url":"https://api.github.com/users/KSP-KOS/events{/privacy}","received_events_url":"https://api.github.com/users/KSP-KOS/received_events","type":"Organization","site_admin":false},"repo":{"id":17217530,"name":"KOS","full_name":"KSP-KOS/KOS","owner":{"login":"KSP-KOS","id":6767371,"avatar_url":"https://avatars.githubusercontent.com/u/6767371?v=3","gravatar_id":"","url":"https://api.github.com/users/KSP-KOS","html_url":"https://github.com/KSP-KOS","followers_url":"https://api.github.com/users/KSP-KOS/followers","following_url":"https://api.github.com/users/KSP-KOS/following{/other_user}","gists_url":"https://api.github.com/users/KSP-KOS/gists{/gist_id}","starred_url":"https://api.github.com/users/KSP-KOS/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/KSP-KOS/subscriptions","organizations_url":"https://api.github.com/users/KSP-KOS/orgs","repos_url":"https://api.github.com/users/KSP-KOS/repos","events_url":"https://api.github.com/users/KSP-KOS/events{/privacy}","received_events_url":"https://api.github.com/users/KSP-KOS/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/KSP-KOS/KOS","description":"Fully programmable autopilot mod for KSP. Originally By Nivekk","fork":false,"url":"https://api.github.com/repos/KSP-KOS/KOS","forks_url":"https://api.github.com/repos/KSP-KOS/KOS/forks","keys_url":"https://api.github.com/repos/KSP-KOS/KOS/keys{/key_id}","collaborators_url":"https://api.github.com/repos/KSP-KOS/KOS/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/KSP-KOS/KOS/teams","hooks_url":"https://api.github.com/repos/KSP-KOS/KOS/hooks","issue_events_url":"https://api.github.com/repos/KSP-KOS/KOS/issues/events{/number}","events_url":"https://api.github.com/repos/KSP-KOS/KOS/events","assignees_url":"https://api.github.com/repos/KSP-KOS/KOS/assignees{/user}","branches_url":"https://api.github.com/repos/KSP-KOS/KOS/branches{/branch}","tags_url":"https://api.github.com/repos/KSP-KOS/KOS/tags","blobs_url":"https://api.github.com/repos/KSP-KOS/KOS/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/KSP-KOS/KOS/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/KSP-KOS/KOS/git/refs{/sha}","trees_url":"https://api.github.com/repos/KSP-KOS/KOS/git/trees{/sha}","statuses_url":"https://api.github.com/repos/KSP-KOS/KOS/statuses/{sha}","languages_url":"https://api.github.com/repos/KSP-KOS/KOS/languages","stargazers_url":"https://api.github.com/repos/KSP-KOS/KOS/stargazers","contributors_url":"https://api.github.com/repos/KSP-KOS/KOS/contributors","subscribers_url":"https://api.github.com/repos/KSP-KOS/KOS/subscribers","subscription_url":"https://api.github.com/repos/KSP-KOS/KOS/subscription","commits_url":"https://api.github.com/repos/KSP-KOS/KOS/commits{/sha}","git_commits_url":"https://api.github.com/repos/KSP-KOS/KOS/git/commits{/sha}","comments_url":"https://api.github.com/repos/KSP-KOS/KOS/comments{/number}","issue_comment_url":"https://api.github.com/repos/KSP-KOS/KOS/issues/comments{/number}","contents_url":"https://api.github.com/repos/KSP-KOS/KOS/contents/{+path}","compare_url":"https://api.github.com/repos/KSP-KOS/KOS/compare/{base}...{head}","merges_url":"https://api.github.com/repos/KSP-KOS/KOS/merges","archive_url":"https://api.github.com/repos/KSP-KOS/KOS/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/KSP-KOS/KOS/downloads","issues_url":"https://api.github.com/repos/KSP-KOS/KOS/issues{/number}","pulls_url":"https://api.github.com/repos/KSP-KOS/KOS/pulls{/number}","milestones_url":"https://api.github.com/repos/KSP-KOS/KOS/milestones{/number}","notifications_url":"https://api.github.com/repos/KSP-KOS/KOS/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/KSP-KOS/KOS/labels{/name}","releases_url":"https://api.github.com/repos/KSP-KOS/KOS/releases{/id}","deployments_url":"https://api.github.com/repos/KSP-KOS/KOS/deployments","created_at":"2014-02-26T16:43:31Z","updated_at":"2016-05-06T01:54:27Z","pushed_at":"2016-05-05T15:56:53Z","git_url":"git://github.com/KSP-KOS/KOS.git","ssh_url":"git@github.com:KSP-KOS/KOS.git","clone_url":"https://github.com/KSP-KOS/KOS.git","svn_url":"https://github.com/KSP-KOS/KOS","homepage":null,"size":107273,"stargazers_count":202,"watchers_count":202,"language":"C#","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":97,"mirror_url":null,"open_issues_count":262,"forks":97,"open_issues":262,"watchers":202,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/KSP-KOS/KOS/pulls/1567"},"html":{"href":"https://github.com/KSP-KOS/KOS/pull/1567"},"issue":{"href":"https://api.github.com/repos/KSP-KOS/KOS/issues/1567"},"comments":{"href":"https://api.github.com/repos/KSP-KOS/KOS/issues/1567/comments"},"review_comments":{"href":"https://api.github.com/repos/KSP-KOS/KOS/pulls/1567/comments"},"review_comment":{"href":"https://api.github.com/repos/KSP-KOS/KOS/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/KSP-KOS/KOS/pulls/1567/commits"},"statuses":{"href":"https://api.github.com/repos/KSP-KOS/KOS/statuses/7f2c23b6e0728bae19cc2137718f33c5941f25d9"}}}}