bradsokol / VcsGutter

A plugin for Sublime Text 2 and 3 to show diffs from Git, Mercurial, or Subversion in the editor's gutter.
MIT License
95 stars 20 forks source link

Showing all lines as changed #28

Open richardm opened 10 years ago

richardm commented 10 years ago

This plugin looks great, but unfortunately it's showing every line as changed in every file I open, despite only changing a few lines (or nothing at all). I'm inside an SVN repo. Not sure if it matters, but I'm stuck on SVN 1.6 for this project. Here is my console output in case it helps, but I don't see anything odd here:

startup, version: 3065 osx x64 channel: stable executable: /Applications/Sublime Text.app/Contents/MacOS/Sublime Text working dir: / packages path: /Users/richardmorgan/Library/Application Support/Sublime Text 3/Packages state path: /Users/richardmorgan/Library/Application Support/Sublime Text 3/Local hardware concurrency: 8 zip path: /Applications/Sublime Text.app/Contents/MacOS/Packages zip path: /Users/richardmorgan/Library/Application Support/Sublime Text 3/Installed Packages found 13 files for base name Default.sublime-keymap found 1 files for base name Default.sublime-mousemap found 10 files for base name Main.sublime-menu loading bindings loading pointer bindings found 1 files for base name Default.sublime-theme theme loaded app ready wrote startup cache, added files: 1 orphaned files: 4 total files: 207 cache hits: 206 pre session restore time: 0.189901 using gpu buffer for window using gamma: 2 (err: 6.9282) first paint time: 0.275445 startup time: 0.306748 launching: /Applications/Sublime Text.app/Contents/MacOS/plugin_host reloading plugin Default.block reloading plugin Default.comment reloading plugin Default.copy_path reloading plugin Default.delete_word reloading plugin Default.detect_indentation reloading plugin Default.duplicate_line reloading plugin Default.echo reloading plugin Default.exec reloading plugin Default.fold reloading plugin Default.font reloading plugin Default.goto_line reloading plugin Default.history_list reloading plugin Default.indentation reloading plugin Default.kill_ring reloading plugin Default.mark reloading plugin Default.new_templates reloading plugin Default.open_file_settings reloading plugin Default.open_in_browser reloading plugin Default.pane reloading plugin Default.paragraph reloading plugin Default.paste_from_history reloading plugin Default.save_on_focus_lost reloading plugin Default.scroll reloading plugin Default.set_unsaved_view_name reloading plugin Default.side_bar reloading plugin Default.sort reloading plugin Default.swap_line reloading plugin Default.switch_file reloading plugin Default.symbol reloading plugin Default.transform reloading plugin Default.transpose reloading plugin Default.trim_trailing_white_space reloading plugin CSS.css_completions reloading plugin Diff.diff reloading plugin HTML.encode_html_entities reloading plugin HTML.html_completions reloading plugin Clipboard History.clipboard reloading plugin Color Highlighter.ColorHighlighter reloading plugin Color Highlighter.colors reloading plugin JsFormat.js_formatter reloading plugin MarkdownEditing.bootstrap reloading plugin MarkdownEditing.custom_find_under_expand reloading plugin MarkdownEditing.distraction_free_mode reloading plugin MarkdownEditing.footnotes reloading plugin MarkdownEditing.gather_missing_links reloading plugin MarkdownEditing.insert_references reloading plugin MarkdownEditing.jumpToMarker reloading plugin MarkdownEditing.list_markdown_references reloading plugin MarkdownEditing.numbered_list reloading plugin MarkdownEditing.paste_as_link reloading plugin MarkdownEditing.paste_as_reference reloading plugin MarkdownEditing.quote_indenting reloading plugin MarkdownEditing.underlined_headers reloading plugin T3S.Typescript reloading plugin Trimmer.Trimmer reloading plugin VCS Gutter.gutter_handlers reloading plugin VCS Gutter.vcs_gutter reloading plugin VCS Gutter.vcs_gutter_change reloading plugin VCS Gutter.vcs_gutter_events reloading plugin VCS Gutter.vcs_helpers reloading plugin VCS Gutter.view_collection reloading plugin Grunt.main reloading plugin JSHint Gutter.JSHint reloading plugin Package Control.Package Control loaded 895 snippets plugins loaded found 1 files for base name Default.sublime-theme theme loaded Package Control: Installing 1 upgrades reloading Packages/User/Preferences.sublime-settings found 1 files for base name Default.sublime-theme theme loaded Package Control: Upgraded Package Control to v2.0.0

bradsokol commented 10 years ago

I tried the latest version of VCS Gutter with an SVN repo on the same version of Sublime as you (3065) and it worked as expected. I used SVN v1.7.17 on OS X and v1.6.17 on Ubuntu.

Do you see this same issue on the same machine but with other repos (Git or Hg)?

What diff utility are you using? You can check this in the VCS Gutter package settings in Sublime Text -> Preferences -> Package Settings -> VCS Gutter

cja-github commented 10 years ago

I get the same issue in Sublime Text 3 on Mac with Hg.

Typing "which hg" in Terminal returns /usr/local/bin/hg

bradsokol commented 10 years ago

VCS Gutter uses the system diff utility for all VCS types. Can you give me the output of “which -a diff”.

Brad

On Tue, Oct 28, 2014 at 9:04 AM, cja-github notifications@github.com wrote:

I get the same issue in Sublime Text 3 on Mac with Hg. Typing "which hg" in Terminal returns

/usr/local/bin/hg

Reply to this email directly or view it on GitHub: https://github.com/bradsokol/VcsGutter/issues/28#issuecomment-60751395

cja-github commented 10 years ago

/usr/bin/diff

On 28 October 2014 13:06, Brad Sokol notifications@github.com wrote:

VCS Gutter uses the system diff utility for all VCS types. Can you give me the output of “which -a diff”.

Brad

On Tue, Oct 28, 2014 at 9:04 AM, cja-github notifications@github.com wrote:

I get the same issue in Sublime Text 3 on Mac with Hg. Typing "which hg" in Terminal returns

/usr/local/bin/hg

Reply to this email directly or view it on GitHub: https://github.com/bradsokol/VcsGutter/issues/28#issuecomment-60751395

— Reply to this email directly or view it on GitHub https://github.com/bradsokol/VcsGutter/issues/28#issuecomment-60751615.

Christopher Alexander cja@cja.org.uk

caweidmann commented 10 years ago

Hi

I'm also running into this issue with SVN repos. I am running Windows 7, with Sublime 3 Build 3065. GIT repos work perfectly.

bradsokol commented 10 years ago

These sound like two slightly different problems, but I'll try to work through both here.

@Corhero Could you provide the version of Subversion that you're using and also paste the Sublime console log.

@richardm I'm a bit stumped on your problem. I'd suggest uninstalling/re-installing VCS Gutter. I know that's a lame suggestion, but I don't have a better idea at this point. I'll keep thinking/experimenting.

caweidmann commented 10 years ago

Before doing anything I decided to debug a little bit. Turned out I wasn't able to access svn via the command line. So I reinstalled SVN (TortoiseSVN). When installing, it by default does not include the CLI - so I just ticked that checkbox. After that everything worked. I assume it had something to do with the fact that before I couldn't use svn via the command line.

bradsokol commented 10 years ago

Glad you got it figured out.

It sounds like VCS Gutter could do a bit more logging to the Sublime console to help with trouble-shooting. I'll look in to that.

On Wed, Oct 29, 2014 at 1:44 PM, Cornelius notifications@github.com wrote:

Before doing anything I decided to debug a little bit. Turned out I wasn't able to access svn via the command line. So I reinstalled SVN (TortoiseSVN). When installing, it by default does not include the CLI - so I just ticked that checkbox. After that everything worked. I assume it had something to do with the fact that before I couldn't use svn via the command line.

— Reply to this email directly or view it on GitHub https://github.com/bradsokol/VcsGutter/issues/28#issuecomment-60970182.

Brad

cja-github commented 10 years ago

Hi Brad,

Any ideas on my problem?

bradsokol commented 10 years ago

Sorry @cja-github. I missed your comment above.

I need to see the contents of the Sublime console. Can you do the following:

cja-github commented 10 years ago

There were a few lines saying

Vcs Gutter: Failed to run command 'hg': FileNotFoundError(2, "No such file or directory: 'hg'") Vcs Gutter: The path can be customized in settings if necessary.

This enabled me to fix it myself.

I'm quite new to Sublime Text and didn't know that plugins logged to the console.

Thanks for the very clear logging. I love it when a program not only explains what the error is but also says how to fix it.

On 29 October 2014 18:20, Brad Sokol notifications@github.com wrote:

Sorry @cja-github https://github.com/cja-github. I missed your comment above.

I need to see the contents of the Sublime console. Can you do the following:

  • Close all Sublime windows except the one that is having the issue.
  • Quit Sublime
  • Restart Sublime. It should re-load that one window that was open showing all lines as changed.
  • Open the Sublime console and copy/paste the log entries in to this issue.

— Reply to this email directly or view it on GitHub https://github.com/bradsokol/VcsGutter/issues/28#issuecomment-60977354.

Christopher Alexander cja@cja.org.uk

bradsokol commented 10 years ago

@cja-github I'm glad the logging helped. That was the plan :)

bradsokol commented 10 years ago

@richardm I've been working to try to re-create your problem. When you say that VCS Gutter shows every line as changed, what is the symbol that is being displayed in the left margin?

rigel314 commented 9 years ago

I was having the same problem on windows, where every line had a plus in the gutter. I was using cygwin's svn binary. I fixed it by redirecting VcsGutter to use the svn binary installed by the SVN plugin for sublime.

bradsokol commented 9 years ago

Good clue. What were the versions of Subversion in each case?

On Wed, Nov 19, 2014 at 2:26 PM, Cody Creager notifications@github.com wrote:

I was having the same problem on windows, where every line had a plus in the gutter. I was using cygwin's svn binary. I fixed it by redirecting VcsGutter to use the svn binary installed by the SVN plugin for sublime.

— Reply to this email directly or view it on GitHub https://github.com/bradsokol/VcsGutter/issues/28#issuecomment-63697757.

Brad

rigel314 commented 9 years ago

The one I'm using in cygwin(version that doesn't work) is "1.7.14 (r1542130)" This one doesn't like windows style paths. For instance a 'svn status c:\svnRepo' will claim it is not a working directory even when 'svn status /cygdrive/c/svnRepo' will give a status.

The one from the SVN plugin is "1.7.15 (Sublime SVN)" The SVN plugin comes with 1.6, 1.7, and 1.8 support. My repo is 1.7, so I chose to use the 1.7 binary.

bradsokol commented 9 years ago

@richardm Would you happen to be using version of svn in Cygwin as described above?

richardm commented 9 years ago

Sorry, I just now saw these replies. My team recently switched to git, and I noticed right away that this works perfectly with git. I still see this issue when I open my svn repo though. Hopefully I won't have any need to use svn moving forward, so I don't mind if you just want to close this, but I'm happy to help if you want to try to figure this out.

Here are the answers to your questions above:

I'm on OSX, so I'm not using cygwin. My svn version is 1.6.17. which -a diff gives me: /usr/bin/diff The symbol I get with VCS Gutter is a + sign on each line

Let me know if you have any other questions

ferrao commented 9 years ago

I have the same problem, i am on OSX, svn and diff available on the command line, nevertheless i have set the path to /usr/bin/diff and /usr/bin/svn which is where they are located, but still get a + sign on each line.

akrz commented 9 years ago

I've got the same problem with svn, all lines are showing as changed. OS: windows 8.1 svn and diff commands are in the PATH and can be executed from anywhere. console log doesn't show any errors or warnings. git works fine

bradsokol commented 9 years ago

I’ve attempted to re-create this problem a few times without success.

Could you provide a bit more information.

What version of Sublime?

What version of Subversion?

Thanks.

Brad

On Mon, Jul 13, 2015 at 9:05 AM, akrz notifications@github.com wrote:

I've got the same problem with svn, all lines are showing as changed. OS: windows 8.1 svn and diff commands are in the PATH and can be executed from anywhere. console log doesn't show any errors or warnings.

git works fine

Reply to this email directly or view it on GitHub: https://github.com/bradsokol/VcsGutter/issues/28#issuecomment-120921940

rigel314 commented 9 years ago

I found it useful for debugging to add a print statement in the get_diff_args function of the SvnGutterHandler class. This allowed me to try running the same command at a command line to see what was wrong.

class SvnGutterHandler(VcsGutterHandler):
    def get_vcs_helper(self):
        return vcs_helpers.SvnHelper()

    def get_diff_args(self):
        args = [
            self.exc_path,
            'cat',
            os.path.join(self.vcs_tree, self.vcs_path),
        ]
        print(args) # Add this line.
        return args

Of course the print statement will be shown in sublime's python console. (Ctrl + `)

I use the following non-portable hack before the return because cygwin's subversion can't handle a windows path:

        args[2] = args[2].replace('\\', '/')
        args[2] = args[2].replace('C:', '/cygdrive/c')
egpbos commented 9 years ago

I was having the same problem as @cja-github. I first tried to solve the issue by adding the path to hg to the path list in my general Sublime settings, but it seems that VcsGutter doesn't check those paths, is that correct? Changing the path in the VcsGutter settings is not a good option for me, since I synchronize my settings to multiple machines and the path to hg is different everywhere (in most cases it is apparently picked up correctly from the $PATH, except on OS X where I'm having this problem). Any ideas?

egpbos commented 9 years ago

Fixed the problem by installing https://github.com/int3h/SublimeFixMacPath.

killmenot commented 9 years ago

Not sure is it helpful but still want to describe the steps that helped me.

I had the same issues like @ferrao described here

Running git --version in the terminal

git --version
Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo.

After I resolved it via http://stackoverflow.com/a/26772631/1468491 I got the version of git in the terminal

$ git --version
$ git version 2.4.9 (Apple Git-60)

and VcsGutter works correctly now.

Hope this helps.

P.S. SublimeFixMacPath was not installed

Mossop commented 8 years ago

I see this with hg 3.5.2, Sublime Text 3095. I have manually set the path to hg in my config and there are no messages shown in the console. I see + by every line in every file in my hg repo.

strycker commented 8 years ago

I had this problem with only one file in my git repo. I copied the file to a new one and gave it a very short name and deleted the original one. The problem went away. So I'm thinking that the issue might be filename length being too long for git or SublimeText+VcsGutter to handle.

hsyn commented 8 years ago

Ladies and gentlemen, which svn and copy the output ST3 -> preferences -> Package settings -> VCS Gutter User settings

{
    "vcs_paths": {
        "svn": "paste/your/output/from/terminal"
    }
}

Jesus how can shit be so easy?

egpbos commented 8 years ago

Most people above did something similar @hsyn. The only problem with this approach is when you use the same settings file on multiple machines where the tools have different paths. A better solution imho would be if VCSGutter would simply make use of the general Sublime settings path list, which already accounts for use on different OSes. Would you want to add this @bradsokol or would you take a pull request for it?

hsyn commented 8 years ago

Hey @egpbos You are absolutely correct using the global settings values. But I am not really expecting an active development for this plug-in. 2 reasons;

1- Author somewhere mentioned that he is not using Sublime anymore. 2- I am only using this plug-in because of a legacy application. SVN and Mercurial is getting less and less popular each day.

I am not disrespecting those tools, They have done a great job until we get to know GIT. so they should rest in peace.

https://www.google.ca/trends/explore?date=all&q=git,svn,mercurial

egpbos commented 8 years ago

That's indeed a clear trend. I find myself moving away from hg as well, though I'm still quite fond of it. Perhaps it's not worth the effort though.

By the way, the SublimeFixMacPath plugin was discontinued some time ago, so my previous solution doesn't work anymore. For what it's worth, my current solution on OSX is to always start Sublime from the terminal, i.e. with the subl command. This way, the $PATH that I set in my shell is correctly imported, which is not the case when Sublime is started from the dock. Everything works fine that way.

hsyn commented 8 years ago

@egpbos

That clears why the plugin sometimes worked! I mostly trigger Sublime from terminal but i use app launcher when i need to restart it. good catch :)

PS: It would be totally fine with staying with hg if the world would stood still. But, (un)fortunately it is not the case. All dependencies and tools we need are also moving to git which is making it harder everyday to keep your hg in place. I would be happy to try answering your questions if you have any about git. Cheers!

bradsokol commented 8 years ago

@hsyn Yes, I am no longer using Sublime or Mercurial for that matter. I like both but circumstances made me change :)

@egpbos I would be happy to review a PR for this issue.