Skip to content

Commit

Permalink
v1.3
Browse files Browse the repository at this point in the history
  • Loading branch information
ArneBachmann committed Feb 10, 2018
1 parent be7afb9 commit e494c33
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 9 deletions.
14 changes: 10 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,14 +58,20 @@ SOS supports three different file handling models that you may use to your likin


## Latest Changes ##
- Version 1.3:
- Version 1.3 release on 2018-02-10:
- [Bug 167](https://github.com/ArneBachmann/sos/issues/167) Accidentally crawling file tree and all revisions on status
- [Enhancement 152, 162](https://github.com/ArneBachmann/sos/issues/152) PEP528/529 compatibility: Now working with any console encoding and file system encoding on Windows (at least with Python 3.6+)
- [Enhancement 163](https://github.com/ArneBachmann/sos/issues/163) Rewrite of changeset handling to avoid problems when re-adding files deleted in previous revision
- [Enhancement 164](https://github.com/ArneBachmann/sos/issues/164) Little improvement for `sos config`
- [Enhancement 165](https://github.com/ArneBachmann/sos/issues/164) Little improvement for `sos config add`
- [Enhancement 168](https://github.com/ArneBachmann/sos/issues/168) Don't stop switching if changes are same as live modifications
- [Feature 64](https://github.com/ArneBachmann/sos/issues/64) Added blacklisting for tracking patterns (e.g. to except single files or reduce scope of globs). Migration from older repositories: Add a `, []` at the end of each branch info inside `.sos/.meta`, e.g. modify `[0, 1518275599353, "trunk", true, []]` to `[0, 1518275599353, "trunk", true, [], []]` (not the additional trailing `, []`)
- [Feature 64](https://github.com/ArneBachmann/sos/issues/64) Added blacklisting for tracking patterns (e.g. to except single files or reduce scope of globs). Migration from older repositories: Add a `, []` at the end of each branch info inside `.sos/.meta`, e.g. modify

`[0, 1518275599353, "trunk", true, []]`

to

`[0, 1518275599353, "trunk", true, [], []]` (not the additional trailing `, []`)
- Downloads so far:
- Version 1.2 released on 2018-02-04:
- [Bug 135, 145](https://github.com/ArneBachmann/sos/issues/135) Fixes a bug showing ignored files as deleted
Expand All @@ -78,7 +84,7 @@ SOS supports three different file handling models that you may use to your likin
- [Enhancement 153](https://github.com/ArneBachmann/sos/issues/153) Removed Python 2 leftovers, raised minimum Python version to 3.4 (but 3.3 may also work)
- [Enhancement 159](https://github.com/ArneBachmann/sos/issues/159) Internal metadata updates. Migration from older repositories: Add `, {}` to `.sos/.meta` right before the closing final `]`, and add `version = "pre-1.2", ` after the initial `[{`
- [Feature 134, 161](https://github.com/ArneBachmann/sos/issues/134) Added dump option
- Downloads so far: 1030
- Downloads: 1760
- Version 1.1 released on 2017-12-30:
- [Bug 90](https://github.com/ArneBachmann/sos/issues/90) Removed directories weren't picked up
- [Bug 93](https://github.com/ArneBachmann/sos/issues/93) Picky mode lists any file as added
Expand All @@ -101,7 +107,7 @@ SOS supports three different file handling models that you may use to your likin


## Comparison with Traditional VCSs ##
While completing version 1.0 of SOS, I incidentally discovered an interesting [article by Gregory Szorc](https://gregoryszorc.com/blog/2017/12/11/high-level-problems-with-git-and-how-to-fix-them/) that discusses central weaknesses in the design of popular VCSs, with a focus on Git. Many of his arguments I have intuitively felt to be true as well and were the reason for the development of SOS: mainly the reduction of barriers between the developer's typical workflow and the VCS, which is most often used as a structured tool for "type and save in increments", while advanced features of Git are just very difficult to remember and get done right.
While completing version 1.0 of SOS after almost two months of development, I incidentally discovered an interesting [article by Gregory Szorc](https://gregoryszorc.com/blog/2017/12/11/high-level-problems-with-git-and-how-to-fix-them/) that discusses central weaknesses in the design of popular VCSs, with a focus on Git. Many of his arguments I have intuitively felt to be true as well and were the reason for the development of SOS: mainly the reduction of barriers between the developer's typical workflow and the VCS, which is most often used as a structured tool for "type and save in increments", while advanced features of Git are just very difficult to remember and get done right.

- While Git is basically a large key-value store with a thin access interface on top, SOS keeps a very clear (folder) structure of branches, revisions and files
- Compared to SVN, SOS's file store is much simpler and doesn't require an integrated database, and recovery is manually possible with little effort
Expand Down
10 changes: 5 additions & 5 deletions sos/usage.coco
Original file line number Diff line number Diff line change
Expand Up @@ -29,23 +29,23 @@ Usage: {cmd} <command> [<argument>] [<option1>, ...] When operating in of
switch [<branch>][/<revision>] Continue work on another branch
--meta Only switch file tracking patterns for current branch, don't update any files
update [<branch>][/<revision>] Integrate work from another branch
--add | --rm | --ask Only add new files / only remove vanished files / Ask what to do. Default: add and remove
--add | --rm | --ask Only add new files / only remove vanished files / Ask what to do. Default: add and remove
--add-lines | --rm-lines | --ask-lines Only add inserted lines / only remove deleted lines / Ask what to do. Default: add and remove
--add-chars | --rm-chars | --ask-chars Only add new characters / only remove vanished characters / Ask what to do. Default: add and remove
--eol Use EOL style from the integrated file instead. Default: EOL style of current file

Working with files:
changes [<branch>][/<revision>] List changed paths vs. last or specified revision
commit [<message>] Create a new revision from current state file tree, with an optional commit message
--tag Memorizes commit message as a tag that can be used instead of numeric revisions
--tag Memorizes commit message as a tag that can be used instead of numeric revisions
diff [<branch>][/<revision>] List changes in file tree (or `--from` specified revision) vs. last (or specified) revision
--to=branch/revision Take "to" revision as target to compare against (instead of current file tree state)
--to=branch/revision Take "to" revision as target to compare against (instead of current file tree state)
ls [<folder path>] [--patterns|--tags] List file tree and mark changes and tracking status

Defining file patterns:
add[not] <file pattern> Add a tracking pattern to current branch (file pattern). Using addnot adds to tracking blacklist
rm[not] <file pattern> Remove a tracking pattern. Only useful after "offline --track" or "offline --picky"
mv[not] <oldpattern> <newPattern> Rename, move, or move and rename tracked files according to tracked file patterns
rm[not] <file pattern> Remove a tracking pattern. Only useful after "offline --track" or "offline --picky"
mv[not] <oldpattern> <newPattern> Rename, move, or move and rename tracked files according to tracked file patterns
--soft Don't move or rename files, only the tracking pattern

More commands:
Expand Down

0 comments on commit e494c33

Please sign in to comment.