gitvisual-studio-codebackuprevision-history

Visual studio code: automatic commit git


Many times, I forget to commit my edits to my git. And if I closed VSCode, I can't use ctrl-Z anymore. Because, I have git set up, I thought I could use something like an automatic commit every 30sec or so.

I have seen this extension btu ti's not open source, so I don't want to use it. I also found this but my programming skills aren't good enough to implement it.

I also wonder if using git in this way is a good option, as the git folder may get really heavy quickly (my git is only local, so I can handle a couple of gigab)

So what is the best way to achieve what I want to do?


Solution

  • 2018:

    I also wonder if using git in this way is a good option

    No, that would pollute the history of your commits.

    Using the extension "Local history" is a better approach, and does not rely on your VCS.
    (and is open-source: github.com/zabel-xyz/local-history)

    Every time you modify a file, a copy of the old contents is kept in the local history.
    At any time, you can compare a file with any older version from the history.
    It can help you out when you change or delete a file by accident.
    The history can also help you out when your workspace has a catastrophic problem.


    2022: No need for an extension with VSCode 1.66 (March 2022).
    VSCode now includes:

    Local history

    Local history of files is now available from the Timeline view. Depending on the configured settings, every time you save an editor, a new entry is added to the list:

    Local History

    Each local history entry contains the full contents of the file at the time the entry was created and in certain cases can provide more semantic information (for example, indicate a refactoring).

    From an entry you can:

    • Compare the changes to the local file or previous entry.
    • Restore the contents.
    • Delete or rename the entry.

    There are new global commands to work with local history:

    • workbench.action.localHistory.create - Create a new history entry for the active file with a custom name.
    • workbench.action.localHistory.deleteAll - Delete all history entries across all files.
    • workbench.action.localHistory.restoreViaPicker - Find a history entry to restore across all files.

    There are also new settings to work with local history:

    • workbench.localHistory.enabled - Enable or disable local history (default: true).
    • workbench.localHistory.maxFileSize - File size limit when creating a local history entry (default: 256 KB).
    • workbench.localHistory.maxFileEntries - Local history entries limit per file (default: 50).
    • workbench.localHistory.exclude - Glob patterns for excluding certain files from local history.
    • workbench.localHistory.mergeWindow - Interval in seconds during which the last entry in local file history is replaced with the entry that is being added (default 10s).

    A new filter action in the Timeline view toolbar allows you to enable or disable individual providers:

    Timeline Filter

    Note: Local history entries are stored in different locations depending on your use of VS Code.

    • When opening local files, the entries are persisted in the local user data folder and
    • when opening remote files, they will be stored on the remote user data folder.
    • When no file system is available (for example, in certain cases when using VS Code for Web), entries are stored into IndexedDB.