Giter Site home page Giter Site logo

vscode-fossil's Introduction

Integrated Fossil source control for Visual Studio Code

Prerequisites

This extension leverages your machine's Fossil installation, so you need to install Fossil first. Also read the cloning documentation for info about cloning from the extension.

Fossil

Features

  • Add files and commit from the source control panel (i.e. where git normally appears).

  • All the basics: commit, add, revert, update, push and pull.

  • See changes inline within text editor.

  • Interactive log for basic file history and diff.

  • Branch, merge, resolve files.

  • Praise

  • Quickly switch branches, push and pull via status bar.

  • Supports named-branches workflows.

  • Automatic incoming/outgoing counters.

  • Undo/Redo.

  • Preview md, wiki and pikchr files

  • Syntax highlighting for pikchr language

  • Use command palette Ctrl-Shift-P >> fossil: to see all commands. (Not everything has a UI control.)

View file changes

View changes

  • Click a file see the diff view
  • Or open a file by using context menu

Initialize a new repo

Init a repo

  • Just click the Fossil icon from the source control title area
    • Follow prompts

Update to a branch/tag

Change branches

  • The current branch name is shown in the bottom-left corner.
  • Click it to see a list of branches and tags that you can update to.

How to

  • Checkout by hash?

    Use branch menu in the status bar.

  • Create a new branch?

    Create a branch with "Commit Creating New Branch..." action in SCM menu or in command palette.

  • Modify commit message?

    Use "Fossil log" from command palette and navigate the options till specific checkout.

  • Get current checkout hash or tags?

    Hover over current branch name in the status bar

  • Close/reopen a branch?

    Use 'Close branch...' and 'Reopen branch...' actions from command palette.

  • Commit partially

    1. Run Stash Snapshot command
    2. Manually remove lines that you don't want in the commit
    3. Make a commit
    4. Run Stash Pop
  • Blame

    Use Fossil: praise command from command palette

Settings

fossil.enabled { boolean }

  • Enables Fossil as a source control manager in VS Code.

fossil.autoRefresh { boolean }

  • Enables automatic refreshing of Source Control tab and badge counter when files within the project change: "true" — enabled "false" — disabled, manual refresh still available.

fossil.path { string / null }

  • Specifies an explicit fossil file path to use.
  • This should only be used if fossil cannot be found automatically.
  • The default behaviour is to search for fossil in commonly-known install locations and on the PATH.

fossil.username { string / null }

  • Specifies an explicit user to use for fossil commits.
  • This should only be used if the user is different than the fossil default user.

Troubleshooting

In general, Fossil designers maintain an abundance of documentation. Reference that documentation as much as possible.

Issue Resolution
Unknown certificate authority Read the Fossil SSL Documentation to update fossil with the correct CA
inputBox prompt difficult to read Run the same fossil command on the built-in terminal (Ctrl+`). Unfortunately VS Code strips newlines and tabs from inputBox prompts.

Feedback & Contributing

  • Please report any bugs, suggestions or documentation requests via the Github issues (yes, I see the irony).
  • Feel free to submit pull requests.

For developers

Acknowledgements

Ben Crowl, koog1000, senyai, ajansveld, hoffmael, nioh-wiki, joaomoreno, nsgundy

vscode-fossil's People

Contributors

joaomoreno avatar koog1000 avatar maphew avatar mrcrowl avatar senyai avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

vscode-fossil's Issues

New branch results in empty commit

Hi,

Would it be possible to have the extension create a new branch when you commit files? I might be doing something wrong, but it seems that a new branch is created and committed without anything in it. Then you can choose the newly created branch from the branch selection thing for your commit.

Thanks!

can't get it to work

I have an open fossil repo and been committing from the cmd-line. After installing this extension, it didn't seem to notice changes I made to a file. So I restarted VSCode (code . within my checked out project) which promptly gave me the error 'current directory is not within an open checkout'. Shortly after, my fan got noisy - looked like that was due to 3 fossil processes running. Restarting VSCode again, I'm not getting the error msg anymore but it always launches 3 fossil processes that max out my CPU. Meanwhile, using fossil from the cmd-line is still fine.

I wonder if this extension perhaps has some expectations that aren't true here? For example, does it expect a remote URL? (I'm just using fossil locally). Or does it expect the .fossil file to be in the opened project? (Mine is somewhere else). Or does it need me to check out the repo again, through the extension?

MacOS 10.14.6
VSCode 1.38.1
fossil 2.10
koog1000.fossil 0.0.11

how to create new branches?

What's the recommended way to create new branches from with the fossil extension? I can see how to change branches but not create.

Thanks for this extension! So glad I found it.

No Fossil clean command

Need to add fossil clean capability. Using it from the integrated terminal results in issues when there are a large number of files that need to be cleaned.

Missing button in Source Control panel to initialize Fossil repo

First of all, thanks a lot for this extension!

On my system (openSUSE Tumbleweed, Visual Studio Code 1.67.1) I don’t seem to have a button to initialize a Fossil repository directly from the Source Control panel (expected place in the red square):
Screenshot_20220517_184915
contrary to what is explained in the README, with the Mercurial gif:
README

I did some further testing, and:

  • The issue is the same whether I have a folder opened in VSCode or not
  • In order to get the extension to get going, I have to manually init then open a Fossil repository through the command line, and finally create a file in the folder: the extension will detect that there is a new untracked file and a Fossil repository, and the Source Control panel will work as expected from this point on
  • Installing Mercurial on my system and mrcrowl’s Hg extension correctly shows the Mercurial button, so it seems to be an issue specific to the forked Fossil extension (maybe changes in VSCode source control panel that the Hg extension has adapted to, but not yet this one?)
    Screenshot_20220517_182257

Cannot commit

Hi,

Thought I would open an issue instead of making the fossil thread longer and longer.

So I originally thought this issue https://www.fossil-scm.org/forum/forumpost/40d409a0d5 was specific to Windows. However, even on a ASCII file, I cannot commit with fossil extension 0.0.8 on Linux.

Replication steps:

  1. init a new repo
  2. Create a blank file
  3. Type some stuff in in
  4. Notice the extension notices the changes
  5. Click on the checkbox under the SCM tab
  6. Type a commit message
  7. Press enter (as explained by the text below the commit message)
  8. VS Code displays: There are no changes to commit.

Expected results: commit to happen and for fossil timeline in the terminal to show new new output.

How have you committed to the fossil repo using VS Code?

Feature request: TimeLine Support

Hello,

Is it possible to support the default TIMELINE of VScode, i.e showing all the history of the file in this section :
image

This would allow to make diffs between specified commits (the current mecanism : show file history button, allows for diffs between the selected commit and the local copy only).

Thanks in advance.

Best Regards,

Feature request: integrate webui

A button to launch the results of fossil ui in a simple webview would allow the entire Fossil workflow to be done without leaving VSCode.

Add option to ignore file from context menu of untracked files.

In the Source Control pane, sometimes untracked files (extra files, in Fossil parlance) show up that I don't want to add to the repository, nor do I want it to keep cluttering the list of untracked files.

It would be nice if there were an option to 'Ignore' the file, right there from the file(s)'s context menu.
In Fossil, a file can be ignored with the setting ignore-glob, which can be overridden by a file called .fossil-settings/ignore-glob (relative to the root of the working directory).

It would be nice if that option even just opened the .fossil-settings/ignore-glob file, if it already existed; or asked to create it if it didn’t. Even better would be if it added the untracked file's relative path at the end of the ignore-glob file after opening it.

Constant remainder of file not in any repo

Every time I save a file that does not belong to any repo, a pop-up rises, telling "file outside of checkout tree"
I know it, and I'm not going to add it to any repo. I find it quite annoying.

I propose 2 possible fixes:

  1. Emit the message one time only per file
  2. Add an option in settings (ignore/one time only/all)

add/remove file in a dir

could you add the possibility of recursively adding/removing files in a directory?
it's a little boring to have to insert one file at a time.

fossil executable not found, although in PATH

After installing the extension (and even re-starting code), "no source control providers registered." remains.

$ type fossil
fossil is /usr/local/bin/fossil

So fossil is installed and well (have been using it for years, and recently updated to the latest version). Where and how can I tell the extension where it resides - and why does the extension not use the PATH?

Revert all changes not working

Reverting all changes only reverts one, seemingly random, file from the changes list. This is obviously not the intended behavior

Feature request: spawn Fossil web interface in webview tab

One of the many things I like about Fossil is the integrated web interface with all the integrated functionality. VSCode is built on a web stack. Embedding the web UI inside VSCode would allow much more work to remain fully within the IDE. The shell command that normally starts a default browser is fossil ui, so that could be intercepted and the port (8080 by default) opened in a webview tab.

Merging

Merging does not work. Need to fix.

commit never completes when fossil asks questions

I just tried to commit a binary without having a binary-glob around, and the progress bar kept on going forever while there was no indication in the fossil output pane of the underlying issue. This worked fine once I added the binary-glob and killed/restarted VSCode, but would be really neat if the prompts from fossil would be translated into some interactive graphical prompt. I wonder if any other VSCode plugin already has a generic solution for translating stdin-prompts into a GUI that could be copied.

Patch create/apply

Expose fossil patch create [DIRECTORY] FILENAME and fossil patch apply [DIRECTORY] FILENAME as ui commands

Show file history.. button is not funtionnal

Hello,

The show file history.. button is not funtionnal, i get this error message when i click on it :

Running the contributed command: 'fossil.fileLog' failed.

I'm running the latest fossil version (2.17).

Thanks for the great extension by the way.

Can you add the ability to connect to a existing repo?

I have a fossil repo, and I want to connect to it in vscode. But I don't see a way to do that in the config. When I try it tells me that the file already exists and stops there.
Please do the needful, and add this ability.

Thank You.

When adding a previously untracked file, automatically stage it

In v0.0.9, when I want to commit a hitherto untracked file, I have to do this in two steps:

  • add the file,
  • then stage it.

Only then can I commit it.
I expected this to be done in a single step.

It's not a huge deal, but I can't think of a situation where I wouldn’t want a newly added file to be staged.

Test framework

There are no tests. Need to make some. What does vs-code use as test framework?

Plugin throws error when opening a non-fossil project

Repeatedly throws this error when in a project that is not using Fossil:

Fossil: use --repository or -R to specify the repository database

The error cannot be dismissed as it will keep trying to refresh and throw the error again, meaning one has to disable or uninstall the plugin.

missing user name

If fossil user name is not the same as login user name.
For example "commit -user ..."
Maybe that can be added to workspace config settings.

User Auth remote-url

In the fossil init workflow the user password is passed as part of the remote-url. This should be passed to stdin with a corresponding -y to store password securely in repo.

Fossil: no such file: <relative path to untracked file>

Since version 0.0.11 of the plugin, I keep getting pop-ups saying Fossil: no such file: ... with the relative path and filename of the file I'm currently editing. This is a file that I haven’t added to the repository yet:
image

Coincidentally, the error popup sports an 'Open Fossil Log' button, but that doesn't do anything.
Manually opening the 'Fossil' output window, I see it tries to do fossil cat <path-and-filename>, which fails — understandably, since the file hasn't been added to the repository yet.

While this is annoying, it wouldn't be a problem if it didn't stop the entire plugin from working; the version control panel now remains completely empty.

Going back to version 0.0.10 of the plugin fixes these problems.

After commit, refresh open file diffs

In 0.0.9, left-clicking on a file in the Version Control pane opens a file diff showing the differences between the file in the repository and the one in the working directory. Very handy. When doing a pull, this gets updated, so the diff is still up-to-date. But after a commit (even of that same file), the file diff isn’t updated, and still shows the differences that have by now been committed.

Ideally, any open file diff should be refreshed after a commit.

Git is shown as SCM instead of Fossil

I'm just beyond the install phase. I've committed and staged everything that I had open in git.

According to help, this is what I should see:
source control fossil

But instead, this is what I see:
source control git

According to settings, Fossil is enabled. It seems git is pre-empting fossil in the vscode UI, or I have skipped something important.

Please improve docs

I've never used any scm extensions in VScode and I have no idea how to get started with this, can you please update your readme to include instructions that do not presume we have been using the git plugins until now.

There's no undo in the editor

Hi! Great extension!
With git extension I see "undo" button in this window:
image
to the left of the "↓" button. It's not there with vscode-fossil extension.

Fossil Request?

I'm suddenly seeing "Fossil Request" editor tabs popping up in VSCode after saving changes to any file. What's going on here?
ss

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.