Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Full Version Control System support #816

Open
spyder-bot opened this issue Feb 17, 2015 · 46 comments
Open

Full Version Control System support #816

spyder-bot opened this issue Feb 17, 2015 · 46 comments

Comments

@spyder-bot
Copy link
Collaborator

From adeela...@gmail.com on 2011-10-27T05:25:09Z

Spyder currently supports limited version control commands e.g. commit
It will be very useful if full support of any version control system is provided preferably "git" What version of the product are you using? On what operating system? Spyder 2.1 on Ubuntu 11.04

Please provide any additional information below

.

Original issue: http://code.google.com/p/spyderlib/issues/detail?id=816

@spyder-bot
Copy link
Collaborator Author

From techtonik@gmail.com on 2011-10-27T08:28:53Z

This will require abstracting several VCS to some basic level. I am sure this was done before, so it will help a lot if you can dig and find existing libs.

@spyder-bot
Copy link
Collaborator Author

From adeela...@gmail.com on 2011-10-27T20:10:15Z

For start, instead of implementing several VCS, spyder can have full support of one.
It can be a discussion what VCS to implement?

@spyder-bot
Copy link
Collaborator Author

From ccordoba12 on 2011-10-27T20:32:36Z

There are two main candidates: git and mercurial. I think there isn't too much to discuss about it.

About the libraries, the most simple but promising seems pyvcs (the one in github) although it seems a bit staled at the moment.

@spyder-bot
Copy link
Collaborator Author

From adeela...@gmail.com on 2011-10-27T21:09:22Z

in my opinion "git" can be the first choice.

@spyder-bot
Copy link
Collaborator Author

From ccordoba12 on 2011-10-28T21:19:40Z

I knew you would say that :) but with an abstraction layer (as Anatoly is suggesting to use) we could have both at the same time.

This is kind of low priority to us right now, to say you the truth. It'd required quite some work and there are good GUIs for both git and mercurial

@spyder-bot
Copy link
Collaborator Author

From ccordoba12 on 2011-10-28T21:41:11Z

Labels: Cat-Miscelleneous

@spyder-bot
Copy link
Collaborator Author

From techtonik@gmail.com on 2011-10-29T01:10:41Z

pyvcs look promising. An alternative is pysync - looks abandoned, but there is still some code that might be useful. I've added both to http://wiki.python.org/moin/VersionControl - feel free to expand the list.

@spyder-bot
Copy link
Collaborator Author

From techtonik@gmail.com on 2011-10-29T02:32:04Z

Another candidate - https://github.com/codeinn/vcs/ - seems to be MIT licensed

@spyder-bot
Copy link
Collaborator Author

From stonebi...@gmail.com on 2013-11-01T03:12:47Z

Hello,

Since August 22nd, only Carlos has made commits to the Spyder project.

More users, so more "issues", less developpers.

In his "Matplotlib: past, present and future" SciPy 2013 Presentation ( http://pyvideo.org/video/2036/matplotlib-past-present-and-future-scipy-2013 ), Michael Droettboom showed a graphic demonstrating that going "full github" had helped the matplotlib project.

==> Isn't it Time to reconsider a switch to github ?

@spyder-bot
Copy link
Collaborator Author

From contrebasse on 2013-11-01T15:14:57Z

+1

The problem is not really that it's not github but rather because google code is quite bad. Contributing by sending patches works, but is tedious compared to the simplicity of a pull request. That is the main reason why I code plugins on my side and don't try to improve core code.
Github forces to switch to git (which would be great too but a very big step), but bitbucket is quite good and manages mercurial repositories. Still, it's less hype than github ! ;)

@spyder-bot
Copy link
Collaborator Author

From ccordoba12 on 2013-11-01T15:55:49Z

Thanks for worrying about the future of the project :) I'm going to release 2.3beta2 on the weekend and then I'll do the switch. I really prefer mercurial (because of TortoiseHg) so I think I'll move to Bitbucket, but I could create a read/write mirror on Github.

@spyder-bot
Copy link
Collaborator Author

From contrebasse on 2013-11-01T17:25:00Z

Do you know about TortoiseGit ? If TortoiseHg is the main thing keeping you on mercurial, you'll feel at home with git and TortoiseGit.

@spyder-bot
Copy link
Collaborator Author

From ccordoba12 on 2013-11-01T20:35:16Z

But it only works on Windows (and I'm a Linux and Mac guy). Although I haven't looked too much, I couldn't find a decent (and open source) graphical client for git.

@spyder-bot
Copy link
Collaborator Author

From stonebi...@gmail.com on 2013-11-02T11:37:25Z

There is a github-mac client, but I'm a windows guy, so I can tell if it's good. http://mac.github.com/ I really think there would be a real cross-interactivity gain with the matplotlib and Ipython big developpement community, if you choose github.

I remember at least Thomas Kluyver (of the Ipython payroll team) proposed a patch for spyder, one time.

@spyder-bot
Copy link
Collaborator Author

From stonebi...@gmail.com on 2013-11-02T11:51:21Z

If I'm not wrong, Thomas was the author if the patch " issue #1480 : 'Report issue' doesn't work in Python 3".

@spyder-bot
Copy link
Collaborator Author

From contrebasse on 2013-11-02T12:05:50Z

We should continue this discussion on the forum maybe ? Because it depends what you mean by "decent". Many people would say that the command line is decent...

@spyder-bot
Copy link
Collaborator Author

From stonebi...@gmail.com on 2013-11-03T06:41:40Z

Those sites liste several GUIs : http://git-scm.com/downloads/guis http://alternativeto.net/software/tortoisegit/?platform=mac Some of the GUI tools listed are "git+mercurial", "Mac", "free", company-supported.

For another viewpoint, @-Mbussonn of the Ipython dev team tweeted :
"I use command line git built with homebrew. I think @-minrk use hub on top. After I don't know."

@spyder-bot
Copy link
Collaborator Author

From techtonik@gmail.com on 2013-11-03T12:02:11Z

I am for Mercurial too. Still free to listen to arguments for the Git from people, who do use both like I do.

@spyder-bot
Copy link
Collaborator Author

From techtonik@gmail.com on 2013-11-03T12:08:18Z

And it is not the Github or Bitbucket that make people commit. It is "if they get the code or not" issue. BTW, making a mirror on Bitbucket is easy. Pull request from Bitbucket is also easy.

I can add Spyder to the list of projects that are automatically mirrored by https://bitbucket.org/rirror Should we make it official?

@spyder-bot
Copy link
Collaborator Author

From gap...@sihsa.co on 2014-08-01T11:03:24Z

I was kind of thinking about this today and made an issue about without taking the time to look if there was already an issue about it...

Any ideas on adding this version control support on Spyder?

I might want to look into it in a couple of months

@spyder-bot
Copy link
Collaborator Author

From techtonik@gmail.com on 2014-08-01T11:06:41Z

No more ideas left. Just sit down and code it. No idea when it might happen though. I am pretty much out of resources.

@spyder-bot
Copy link
Collaborator Author

From goanp...@gmail.com on 2014-08-02T11:29:01Z

Is there any action plan ? maybe we can trace a plan for what is needed and where it is needed?

Right there is the assumption that things have to be already installed... https://pythonhosted.org/spyder/projectexplorer.html If we use conda, at least mercurial would be quite easy to install as it is already included as a conda package. For git not sure, but should be also doable. Then these requirements could go away for .. at least for Anaconda users.

The idea would be to keep this in the project explorer?. then again what is the future of the project explorer? I mean leaving version control in the project explorer can be good or bad... maybe you just want to commit some changes to some scripts you are working on... do you need to create a project? I think it should and it can be more simple...

On another subject... Is there a Git mirror set already for spyderlib? there is some plan to make use of travis-ci? could that help in spyder development and testing?

@spyder-bot
Copy link
Collaborator Author

From techtonik@gmail.com on 2014-08-04T05:36:16Z

This is the entrypoint https://code.google.com/p/spyderlib/source/browse/spyderlib/utils/vcs.py Function from this module can be backtraced to menu items that contain the actions. Project explorer is unnecessary, but a Project concept is still a good thing. It allows to detect what kind of Project is available at given root directory. Without Project concept you need to cache this information per directory, and one directory can be under different VCS at the same time and be a part of some project as well.

So, the architecture for directory info can be:
dir.datablocks[0]
type = 'version control'
vcs.type = 'mercurial'
vcs.root = path
...
Now you need handlers that will update this info when needed. Better explicitly first, otherwise it may be too slow.

About testing, I am not sure how do you intend to test Qt GUI with Travis. Example maybe?

@spyder-bot
Copy link
Collaborator Author

From goanp...@gmail.com on 2014-08-04T07:46:45Z

I mean for everything not gui :)

@spyder-bot
Copy link
Collaborator Author

From techtonik@gmail.com on 2014-08-04T09:39:59Z

There is no plan for everything, so feel free to start one. =)

P.S. Even if there is a plan, it can be easily merged.

@spyder-bot
Copy link
Collaborator Author

From ccordoba12 on 2014-08-23T14:01:30Z

issue #1919 has been merged into this issue.

@goanpeca
Copy link
Member

This will initially be develop as a separate plugin on a separate repo. More information will be provided when a POC is ready.

@goanpeca goanpeca removed their assignment Jan 14, 2017
@ccordoba12
Copy link
Member

Yep, we're thinking to follow the VSCode way of working with git. But a plugin for this will probably come in H2 of this year.

@brothermalcolm
Copy link

Having tried quite a few python IDE's including Jupyter notebook, visual studio, enthought canopy, and pycharm... I still found spyder the most intuitive and easy to use (plus integrates really well with environments and conda). The only thing missing is a git VCS. This might make or break it for me for the long haul. Someone mentioned an R Studio type git integration, which I agree 100%. I'd like to contribute towards this project, please enlighten.

@ccordoba12
Copy link
Member

I think we'll work on this for Spyder 4, once we add preferences to Projects.

@ccordoba12 ccordoba12 modified the milestones: v4.0beta1, v4.1 Aug 13, 2017
@CAM-Gerlach CAM-Gerlach changed the title Full Support of Version Control System Support Full Version Control System support Feb 18, 2018
@stringinator
Copy link

It is somewhat ironic that Spyder is developed on Github but doesn't have that feature integrated yet. Are the Spyder developers using Visual Studio? (said tongue-in-cheek).

@goanpeca
Copy link
Member

@brothermalcolm and @stringinator I will start working on this features.

Do you have something specific in mind screenshot wise or functinality wise so I can start sorting out priorities.

For example: VSCode displays branches and environment (conda?) on the status bar like.

Screen Shot 2019-03-22 at 10 42 12

Cheers ;-)

@goanpeca goanpeca self-assigned this Mar 22, 2019
@Dries-B
Copy link

Dries-B commented May 15, 2019

Mentioned in this EPIC, I think git-cola should be mentioned in this discussion.

I have been looking for a GUI for git version control that goes together well with Spyder and I think that git-cola makes a good candidate, because of its simplicity and clean design. It offers similar functionality to the R-studio VCS (@goanpeca).

(I don't have any stake in git-cola by the way, besides being a user.)

@ccordoba12
Copy link
Member

@Dries-B, we agree that git-cola has a lot of good points on its favor and that's why we plan to use it to build a third-party plugin called spyder-git around it. It'll be developed separately from Spyder due to licensing reasons (git-cola is GPL and Spyder is MIT) but we'll make it an Spyder dependency.

@trollodel
Copy link
Contributor

Hi VCS folks.

One month ago, I started working to a VCS integration (PR #13562) and now it is complete enough to provide a simple pane to manage your repository (further details can be found in the PR).

I am writing here to ask anyone here to give me some advices or wishes that I should take in account.
If interested, I also create a repository for tracking the updates or (why not ;) ) contribute to it.

@matt-VR
Copy link

matt-VR commented Mar 7, 2023

Honestly, I'm still very interested in a Git integration / extension in Spyder! Hope I'm not the only one here ...

Are there any news when or if this will be addressed?

@ccordoba12
Copy link
Member

We don't have an estimate for this, but perhaps we'll have time for it next year.

@dalthviz
Copy link
Member

dalthviz commented Mar 7, 2023

Also, just in case, the link to the most up to date repo where adding this funcitonality as an external plugin is located: https://github.com/spyder-ide/spyder-vcs

@piebel
Copy link

piebel commented Nov 7, 2024

Hello, so with Spyder 6 now coming out, is there any update in implementing a VCS panel in the IDE?

@dalthviz
Copy link
Member

dalthviz commented Nov 7, 2024

Hi @piebel I would say no, sorry. However, maybe you could give a try to https://github.com/spyder-ide/spyder-vcs with Spyder 6 and document errors over that repo

@dalthviz dalthviz added this to the wishlist milestone Nov 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.