<div><br></div><div><b><i>> we're all still fairly ignorant when it comes to using git, and </i></b></div><div><b><i>> we've <span class="Apple-style-span" style="font-style: normal; font-weight: normal; "><b><i>all had close encounters with git disasters.</i></b></span></i></b></div>
<div><br></div><div>Why are we using GIT?  I understand that it's supposed to be better than CVS/SVN, but it's still a dinosaur compared to Mercurial or Bazaar.  Why aren't we using Mercurial? </div><div><br></div>
<div><b><i>> Melanie is the one keeping branches in sync, she has spent </i></b></div><div><b><i>> a lot of time resolving conflicts by hand, helping out the </i></b></div><div><b><i>> messes <span class="Apple-style-span" style="font-style: normal; font-weight: normal; "><b><i>we get into, etc. </i></b></span></i></b></div>
<div><br></div><div>That seems extremely insane, and that's the whole problem with Git. It would make more sense to use something like Mercurial.  Much easier with the "intelligent syncing" feature of Mercurial (which Git doesn't have, so everything must be done manually with Git and wastes a lot of time).</div>
<div><br></div><div><b><i>> She can do that with one branch but not with many... </i></b></div><div><br></div><div>It would really make much more sense to switch over to Mercurial (or Bazaar) for the development work.</div>
<div><br></div><div>Mercurial (and Bazaar) are even faster than Git, plus Mercurial has the best "intelligent merging" and allows users to work only on one directory of the repository (to help limit damage, etc.).  The "Intelligent Merging" features are nice (make commits easy on the dev's).</div>
<div><br></div><div>Lots of great features in Mercurial, and it's probably by far the best (or at least much better than CVS, Subversion, or Git).  Bazaar and Mercurial are probably the two best. </div><div><br></div>
<div><div><a href="http://versioncontrolblog.com/comparison/Bazaar/CVS/Git/Mercurial/Subversion/index.html">http://versioncontrolblog.com/comparison/Bazaar/CVS/Git/Mercurial/Subversion/index.html</a></div><div><br></div></div>
<div>I could setup a Mercurial or Bazaar repository on a server (for redundancy purposes) and then each of the Dev's can just use Mercurial on their desktop to collaborate peer to peer (and I can perform backups of the main Mercurial server, just so we have backup, snapshot and restore points).  It will help with the "intelligent merging" (for numerous dev's all working together all at the same time) and we can always feed copies of the Merc repository back to the old Git and just use the old Git repository as a public archive.</div>
<div><br></div><div>Mercurial is extremely easy to use:</div><div><br></div><div><a href="http://hgbook.red-bean.com/read/mercurial-in-daily-use.html#id496680">http://hgbook.red-bean.com/read/mercurial-in-daily-use.html#id496680</a></div>
<div><br></div><div>Merc is peer to peer, and supports backups/mirroring, and has lots of great features.  I can just setup a master server (with a cron job) to automatically pull periodic changes from your local repositories every hour (for all the core dev's).  Since Mercurial maintains a complete copy of history in each clone (every single peer), everyone who uses Mercurial to collaborate on a project can potentially act as a source of "backups" in the event of a "catastrophe" (since there is no real "centralized" server).  If a central repository becomes unavailable, you simply just clone a copy of the repository from one contributer, and pull any changes they may not have seen from all the other contributers.</div>
<div><br></div><div>Mercurial is extremely easy to perform off-site backups and remote mirrors.  Plus I can set it up to perform traditional backups to tape or disk (for archival purposes).  This way if there are any problems, we can always roll back, or undo or perform disaster recovery.</div>
<div><br></div><div>To do backups, you just use "hg clone -U myrepo myrepo.bak" to create a clone of the "myrepo" repository and then just perform a nightly backup, that way automated nightly backups are being performed on the repository.</div>
<div><br></div><div>This way you have something to roll back to, even if disaster does strike (a dev somehow hoses everything up, which is unlikely) but regardless it never hurts to have backups and consistent snapshots.</div>
<div><br></div><div>Mercurial maintains a complete copy of history in each clone, so it creates numerous "backups" (and lots of redundancy).  By having a dedicated server online, that will just act as a "main peer" at least all the other peers can feed/seed back to the main peer anytime they are online or connected to the internet.  The main server will simply act as a "seed", and all the other dev's computers (that may go on or offline) will simply act as peers for redundancy purposes.  It's almost similar to a "torrent" type of architecture (P2P) which is good for speed of uploading/committing large updates since it can pull from any of the available online peers that are online.  (Very similar to torrent).  I could maintain a "seed" server, and just perform nightly backups onto a 2TB drive, and that way we could easily have 6 months, or even a year or two of nightly backups for disaster/archival purposes just in case any "accidents" do happen.</div>
<div><br></div><div>                 Mark</div><br><br><div class="gmail_quote">On Mon, Feb 22, 2010 at 4:01 PM, Cristina Videira Lopes <span dir="ltr"><<a href="mailto:lopes@ics.uci.edu">lopes@ics.uci.edu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Yeah, we could have done that in theory. In practice, we're all still<br>
fairly ignorant when it comes to using git, and we've all had close<br>
encounters with git disasters. Melanie is the one keeping branches in<br>
sync, she has spent a lot of time resolving conflicts by hand, helping<br>
out the messes we get into, etc. She can do that with one branch but<br>
not with many... so until several of us learn how to deal with git<br>
errors effectively, it's not wise to multiply branches. We'll learn as<br>
we go, and hopefully we'll get better at using git.<br>
<div><div></div><div class="h5"><br>
<br>
On Feb 22, 2010, at 11:47 AM, Toni Alatalo wrote:<br>
<br>
> <a href="mailto:diva@metaverseink.com">diva@metaverseink.com</a> kirjoitti:<br>
>> We can, by this order:<br>
>> 1) merge presence-refactor into master<br>
>> 2) create a sop-refactor branch from master immediately after<br>
>> 3) create a 0.7 branch some time later<br>
>> I would like to propose that the sop refactoring work be done in a<br>
>> branch rather than in the master branch, similar to what we did for<br>
>> the<br>
>><br>
><br>
> I also think a branch for it is a good idea, but don't know why wait -<br>
> the sop-refactor branch can also be branched from presence-refactor<br>
> right now if Adam wants to start already. Like Melanie suggested some<br>
> days ago in this thread.<br>
><br>
> AFAIK this won't be a problem with git, 'cause commits are commits and<br>
> it doesn't matter from which repo they are from, a version being a set<br>
> of commits. So sop-refactor could first pull from presence-refactor if<br>
> work still goes on there, and then keep pulling from master when it<br>
> lives there, etc.<br>
><br>
> Perhaps this is not relevant anymore if 1) can be done now, might have<br>
> been a good idea a couple of weeks ago when presence-refactor was<br>
> pretty<br>
> much done for parts that touch the scene(?). Also, I'm by no means a<br>
> git<br>
> expert, so am curious to know if have misunderstood it somehow and<br>
> this<br>
> idea wouldn't work .. Melanie did say in her post that it would.<br>
><br>
> ~Toni<br>
><br>
><br>
><br>
>> services refactoring. It works pretty well -- gives the refactoring<br>
>> devs<br>
>> peace of mind to leave things unstable and isolates the master branch<br>
>> from prolonged instability.<br>
>><br>
>> Also, are there any suggestions for Adam before he starts doing<br>
>> this? He<br>
>> sent out a document some time ago, but there wasn't a lot of<br>
>> feedback or<br>
>> discussion. Are there any alternatives or wishes for his proposed<br>
>> work?<br>
>><br>
>> Justin Clark-Casey wrote:<br>
>><br>
>>> Frisby, Adam wrote:<br>
>>><br>
>>>> I would like to start the SOP refactor fairly soon - what if once<br>
>>>> 0.7 is tagged for the RC process; I go and and make a new branch;<br>
>>>> we can sic testers on the presence-branch, while dev happens on<br>
>>>> the branch I tag?<br>
>>>><br>
>>> My concern with branching for 0.7 release candidates immediately<br>
>>> after the presence-refactor merge is that we won't get everybody<br>
>>> helping to iron out the inevitable hiccups since most people<br>
>>> follow master.  Waiting a couple of weeks for at least some of<br>
>>> this to happen is the minimum, I feel.  Ideally, I'd like that to<br>
>>> be longer but I know that you and other folk want to press ahead.<br>
>>><br>
>>> I guess some of this depends on how disruptive the refactor is.<br>
>>> What do you think?  I'm assuming there will be breakage but<br>
>>> perhaps I'm wrong?<br>
>>><br>
>>> Of course, I guess you could create a separate sop-refactor branch<br>
>>> at any point and start work there, possibly merging back to master<br>
>>> and continuing in master once 0.7 RC has been branched.<br>
>>><br>
>>><br>
>> _______________________________________________<br>
>> Opensim-dev mailing list<br>
>> <a href="mailto:Opensim-dev@lists.berlios.de">Opensim-dev@lists.berlios.de</a><br>
>> <a href="https://lists.berlios.de/mailman/listinfo/opensim-dev" target="_blank">https://lists.berlios.de/mailman/listinfo/opensim-dev</a><br>
>><br>
><br>
> _______________________________________________<br>
> Opensim-dev mailing list<br>
> <a href="mailto:Opensim-dev@lists.berlios.de">Opensim-dev@lists.berlios.de</a><br>
> <a href="https://lists.berlios.de/mailman/listinfo/opensim-dev" target="_blank">https://lists.berlios.de/mailman/listinfo/opensim-dev</a><br>
<br>
_______________________________________________<br>
Opensim-dev mailing list<br>
<a href="mailto:Opensim-dev@lists.berlios.de">Opensim-dev@lists.berlios.de</a><br>
<a href="https://lists.berlios.de/mailman/listinfo/opensim-dev" target="_blank">https://lists.berlios.de/mailman/listinfo/opensim-dev</a><br>
</div></div></blockquote></div><br>