Is there a decent Subversion client available for XCode? I am so tempted to write my own as of this morning after having a conflict on an update. I've done merges manually editing the ">>> mine" and "<<< theirs" markers but there has GOT to be a better way in this day and age. Does anyone know of an easy way to resolve conflicts graphically? It seems like SCM conflicts and svn history queries are my two most missed features in all of the Mac SVN clients I've seen so far. I use Versions and sometimes the built in XCode SCM support. I've also looked briefly at Cornerstones web site. (Is Cornerstone any better?) Does anyone have any ideas?
I'd suggest using git-svn with GitX for most things. The GitX commit interface is so nice it's really hard to go back to anything else.
For conflicts I use Emacs, which offers really nice, fully editable, color-coded 3-way merge.
You also might check out the WWDC 2010 videos/slides (free at Apple's site if you're a registered developer) regarding SCM support in the upcoming version of Xcode.
As a GUI, SmartSVN offers a basic conflict editor (though I find the the application very slow to refresh on a large source tree). Often I find myself going back to Emacs which has support for subversion via Psvn.el, and that has a very capable 3 way diff with ancestor revisions, custom region skipping and other goodies.
Related
I have some xamarin.forms 1.xx( I dont know which version) project on multiple platforms Android and iOS. And I've been asked to upgrade it to the maximum available right now version of xamarin.forms.
Therefore, I have 2 questions:
1) How to determine which version of forms I'm using right now (I'm working in Windows environment using Visual Studio 2015 ).
2) How to migrate/update to newest version of forms? (step by step, if it's possible). I have no idea how the result of that kind of operation supposed to look like, cuz I have never done anything like this before in my life. And what the best practices are?
What I've done is opened VS2015->Help->Xamarin release notes, however there was nothing about version of Forms I'm using. Also, I went to the official xamarin website and there was no guide how to do that. I also tried to look at the release notes the last Forms update and trying to find and fix differences, but my project is so big and I thought that this way doesn't seems right.
I'll answer first the What are the best practice regarding upgrading a Xamarin.Forms application? first and then address your other concerns.
I recently upgraded from 1.5.1 to 2.3.2, and from my experience, this is the steps to go through:
Decide which version you will upgrade from and to.
Read the change logs for all stabled releases between these two versions and look for breaking changes/bugfixes. You can find the release notes on Xamarin's website or on NuGet's website too.
Check regularly for new releases on the Xamarin.Forms forum and check if any reported issues may affect you. Every time Xamarin makes a release, there is a thread full of comments from other developers that may have encountered issues you might be interested in.
Using your favorite versioning software, make sure that all local changes are commited or stashed and create a new branch for your Xamarin.Forms upgrade (you don't know how long the upgrade will take and you still want to be able to send patches during the process)
Upgrade: Read the Important notes at Xamarin.Forms 2.3.2 release notes, especially the When upgrading Xamarin.Forms take care not to simply "update all" as ... part. Remember to upgrade on your PCL project, on your iOS project and on your Android project.
Test your whole app on as many devices as possible and for the longest possible period before you merge your branch back into your development/master/Main branch and address the potential incompatibility issues that may have been created in your development/master/Main simultaneously.
Step 3 is very important as it will allow you to reset back to your starting point and restart if you should fail to upgrade for whatever reason.
Xamarin.Forms is moving fast so it's important that you always keep an eye on what's going on even if you don't upgrade.
Which version am I using right now?
You can check that in the NuGet package interface or in the packages.json file in your project.
I would like to implement a Rake task that automates some of the tasks I have to do to move my changes from development to production (and yes, I know there is something out like Capistrano, and it is way too much for me). In the center, there are some interactive commands like git add -i and a series of commit and push. On the production side, there will be pulls and assets tasks to do.
It is tedious to type in all the time the same commands so I would like to automate it completely. What I have not found is the Ruby API for Git.
It should work under Windows 7, and allow at least the following commands: git add, git status, git commit, git push, git pull.
I know, bad habit, but I would like to document the experiences of this weekend:
There is a similar question on https://softwareengineering.stackexchange.com/questions/62843/best-ruby-git-library that names the 3 relevant candidates: Git, Grit and Rugged.
Git and Grit are not developed further, Rugged is currently developed, but not finished.
Git works out of the box, but has some deficiencies:
There are known shortcomings (see the issues).
I had the problem, that added and changed items are not well matched, they can be in only one of the 2 states (which is not true for Git currently).
The API is reasonable, and works well in console, Ruby script or Rake task.
Grit did not work for me at all, and I did not found the reason. I got stack traces (low level ones), and tried a few patches that could be relevant for usage under Windows 7, but with no success.
Rugged is not installable for me, so I filed a bug to rugged which got some feedback. The problem seems to be that rugged only works for POSIX systems, so it is not compilable with DevKit for Ruby.
So I will try to find a compiled version of libgit2.dll for Windows 7, and will try to use that. I have done that in the past with sqlite3.dll, so perhaps that is the best try. For me, rugged is the most sensible solution, because there are people behind that project, they are interested to provide a solution that works cross platform.
This one seems to be quite popular. If you are more interested in GitHub then you might want to look at this one.
UPDATE:
Rugged seems to be the newest one out there though the Gem for it has not been built in a while. Might be best to use the source from Github.
July 2013 update:
It looks like Rugged is the tool of choice at the moment. It is being actively maintained and it looks like most (all) of the core committers work at github.
Even though grit is the most popular, and is created by one of the github founders, it hasn't been touched for 5 months and has had little activity.
See Ruby-Toolbox for details.
I'm trying to understand how to use GIT with Xcode 4.2.
I haven't been using GIT actively, but while I was walking through a couple of git operations mentioned in this link it appears that I have a single repository with many projects in it and a recent project in a repository all by itself.
I want to carefully take the project I am currently working on and put it into its own repository so I can safely leverage some of the branching capabilities.
I'm hesitant to begin until I have a better understanding of what's going on. I'd like to know how much is handled within Xcode and what I have to do at the command line.
#manojids comment to learn a source control system (like git) outside of a specific editors integration is a good point. Try to understand the source control system. The integration is a convenience, not a crutch.
Outside of that advice, apple has some docs outlining specifics of how XCode works with git. Here's the link:
http://developer.apple.com/library/mac/#documentation/ToolsLanguages/Conceptual/Xcode4UserGuide/SCM/SCM.html
A good online resource is the pro git book available here:
http://git-scm.com/book
If you want to learn and understand Git and its concepts in detail then this book would be best for you here is the link.
Or you can have a drill on it practically if you follow this tutorial.
I hope you will get help.
Initially we didn’t use any source control software. Now we are using TFS 2010 for version control. Currently we are facing issue related to how to handle changes with production code and code that is under development.
Assuming we have published a version 1.0 to the web using visual studio 2010 publish with source code x. Now we continue to work on the source code to implement more features. Noow the source code has changed to x.something.
During that time we receive bugs reported by users. Now how to handle such situations since bugs has to be fixed in source code version x. And we don’t want to use x.something version since it has few unfinished features which we don’t want to publish on production.
At this time what is the recommended practice.
Are there two repositories for different versions of source code? If yes then how to fix errors when then come –first update current version or the published code, since we don’t want those errors to exist in current development version.
look into Branching - you can find a good guid here:
TFS Branching Guidance
I think you need/want something like the Branch per Release of Code-Promotion Branches described [here]: or
2
I like those too, but they are more comples (too complex?):
(taken from here - only in german sorry)
You should put a label on your code when releasing in prod, and then making a branch immediatly.
TFS2010 doesn't support "branching by label" though the UI anymore. See "Branching by Label in TFS 2010".
If you didn't make a branch dedicated for fixing the bugs in prod right away, you still can use the command line for branching by label. See "Branch commands"
Create a branch for your released version (x) if you haven't already. Fix the bugs in the release branch. Merge the fixes into the development branch (if applicable). http://tfsbranchingguideiii.codeplex.com/ has recommendations on branching and merging.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 3 years ago.
Improve this question
I love the Google Project Hosting web app. It includes bug tracking, wiki and SCM in one interface. (Example: WMD Editor)
This solution is closed source and not for sale. While searching similar solutions I found Trac which has a rougher interface.
Could you list similar solutions?
Someone asked the same question, but specified Git as the SCM.
[EDIT] Since I wrote this answer, an exciting new fully-integrated distributed project management software has hit 1.0: Veracity by SourceGear.
Fossil-SCM is a nice distributed SCM, where "SCM" has the original meaning of "Software Configuration Management" and not the new diluted meaning of "Source Code Management".
What this means is that Fossil integrates distributed version control, distributed bug tracking and distributed wiki into one repository. Not one UI, like, say, Trac but one single repository.
So, if you clone a Fossil repository, you do not just get the latest version of the source code plus all its history, like you would get with Git, Mercurial, Bazaar, Monotone, Darcs or any other version control system, you also get the current bug database plus all its history and the current wiki plus all its history.
Fossil is written by D. Richard Hipp, who is not only the author of SQLite but also CVSTrac (the precursor of Trac). So, you know it's gotta be good.
If you want to see an example of Fossil in action, just the follow the link I posted: Fossil is hosted in Fossil itself and the Fossil homepage is actually just the Fossil repository itself.
BTW: even if you don't end up using Fossil, just spend some time learning its concepts. It's a rather brilliant design, and you're probably going to learn something which you can apply even if you are using Trac, Git, Instiki or whatever.
You might look at redmine.org, I'm just getting familiar with it, having only used it on a project for a couple months, but liking it so far.
If you're willing to tolerate closed source FogBugz is pretty good. http://www.fogcreek.com/FogBUGZ/
They'll let you test it for up to 2 people and if you decide you like it you can either licence space on their servers or purchase to run on your servers.
If you're an open source only kind of guy, I recommend diversifying. Get a couple different pieces of software to do the different things you want. Often times things like SVN will have post commit scripts to link your commits to your wiki or bug tracking, etc.
Its nice when things are bundled, but nicer when you can pick and choose the things you want.
Trac does all of these things.
If you really like the Google Hosting App, you might find InDefero the right choice for you.
I like Assembla.
FogBugz is pretty slick. I've been using for a month and really like it. It has a SCM plugin.
Do you really need all three solutions (SCM, bug tracking, and wiki) in one solution? Why not mix and match the solutions that work best for you?
I've never used Trac, but bugzilla works really well as a free bug tracker. There are lots of open source wikis out there, and for free SCMs, mercurial, git and subversion are all excellent choices.
For paid solutions, Atlassian Jira and Confluence (task tracking and wiki) are okay, but FogBugz is better. Perforce is IMHO the best non-free SCM out there.
Did someone mention Indefero? Looks nice enough so non-techs wont be scared to use it, open source version, private projects... Git support, issue tracker... seems like a good solution.
I'll have to go with echoesofspring on this one. Redmine looks to be a great system as issue tracking/ project management tool if you want to:
1. manage multiple projects with sub-projects
2. project/ task status transparency with clients or project managers
3. repository integration (I haven't used it)
4. Gant charts and calendars and more...
I chose it from this [wiki list of project management tools] :[1]http://en.wikipedia.org/wiki/Comparison_of_project_management_software#!