spyder-ide / spyder

Official repository for Spyder - The Scientific Python Development Environment
https://www.spyder-ide.org
MIT License
8.27k stars 1.61k forks source link

Full Version Control System support #816

Open spyder-bot opened 9 years ago

spyder-bot commented 9 years ago

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 commented 9 years ago

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 commented 9 years ago

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 commented 9 years ago

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 commented 9 years ago

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

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

spyder-bot commented 9 years ago

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 commented 9 years ago

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

Labels: Cat-Miscelleneous

spyder-bot commented 9 years ago

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 commented 9 years ago

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

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

spyder-bot commented 9 years ago

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 commented 9 years ago

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 commented 9 years ago

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 commented 9 years ago

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 commented 9 years ago

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 commented 9 years ago

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 commented 9 years ago

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 commented 9 years ago

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 commented 9 years ago

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 commented 9 years ago

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 commented 9 years ago

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 commented 9 years ago

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 commented 9 years ago

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 commented 9 years ago

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 commented 9 years ago

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 commented 9 years ago

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

I mean for everything not gui :)

spyder-bot commented 9 years ago

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 commented 9 years ago

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

issue #1919 has been merged into this issue.

spyder-bot commented 9 years ago

From goanp...@gmail.com on 2014-08-25T04:36:46Z

@-techtnik

Thanks for the entry point. I will start working on VC next month, I will se what can be used from the abandoned projects you mentioned. My idea is to have a minimum viable product that works with the new projects (a work in progress right now). I will be working on a version control toolbar and I think the file explorer should be used instead of the Project Explorer.

If it is needed I think I would rather use QProcess instead of Popen as it better integrates with Qt

spyder-bot commented 9 years ago

From techtonik@gmail.com on 2014-08-25T06:27:36Z

Spinning a separate thread for subprocess is definitely a good way to explore, because subprocess alone has many woes.

The last time I was working on VCS, the first thing on my TODO list was to have a button in toolbar that can turn on/off depending on if the current file in project/file explorer is under VCS control. A minimal example of such button will serve as a good start to see what may be missing in Spyder itself for this integration.

spyder-bot commented 9 years ago

From goanp...@gmail.com on 2014-08-25T06:36:58Z

I think the idea is to have something similar as what R Studio offers. Basically you would start a project (from scratch, or from version control, or with version control enabled or by adding a project).

Depending on all this choices a VC toolbar could be added. At any given time you would be working on a specific project, if you wished to switch to another project all consoles woul close and restart where you left in the project. This could also include loading on the editor the specific set of files you were working on and even a custom layout associated to the project.

Another option could be to include this as extra buttons/functions in the file explorer. As I commented earlier I believe there is no need to have a project explorer for this "new" concept of projects.

VC could be handled in a 'popup' dialog when as adding a new panel might be overkill for spyder.

Perhaps I need to have a working version of how projects would work under this scheme before proceeding with VC.

durack1 commented 8 years ago

Hi folks, I've seen git/versioning integration in pycharm and it's really nice how it displays coloring that quickly indicates the commit status of a working file. It'd be great if such version control integration was also rolled into Spyder.

goanpeca commented 8 years ago

@durack1 it is indeed on the plan, most likely for 4.0 release.

In the meantime please free to include screenshots of the things you are referring to.

Cheers

durack1 commented 8 years ago

There's alot of info available at https://www.jetbrains.com/help/pycharm/2016.1/using-github-integration.html?origin=old_help - and some more below: VC_checkout

I'll try and get some better example screengrabs up here soon...

goanpeca commented 7 years ago

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

ccordoba12 commented 7 years ago

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 commented 7 years ago

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 commented 7 years ago

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

stringinator commented 5 years ago

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 commented 5 years ago

@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 ;-)

Dries-B commented 5 years ago

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 commented 5 years ago

@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 commented 4 years ago

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 commented 1 year ago

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 commented 1 year ago

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

dalthviz commented 1 year ago

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