I'm doing this topic in the public area, in the hopes that:
(1) my issues may be resolved by more people,
(2) anyone can learn, too, and later be able to contribute to the repo when it's made public.
So... Wedge is now a git repo (yaaaaay...), and leaves SVN behind. (I'm not completely finished with it, as I plan to restore revision numbers through either tags or notes, whatever is best, in the future, when I have a bit more time to devote to that.)
Git is a complicated beast to master, and I'm only getting started.
Notably, what needs to be 'understood' is how communicating between repos is made. Since it's not stored on a central server, no repo is the 'right' repo, so I consider the right repo to be my local repo. For all intent though, it's exactly like the BitBucket private repo I have right now, since my 'origin' ref is set to that one.
There are 4 matters that I wish to solve before I can continue. (Maybe 5, but I can't remember the last one, it'll come back to me.)
1/ When doing a pull from my remote origin, TortoiseGit fails because some files I've edited locally were changed in the meantime on the remote repo. It told me to stash my uncommitted changes, but I can't find a stash command in TortoiseGit. So, I fired up SmartGit, and tried to pull from there. It offered me a choice between merging and rebasing. I chose merging as it's the default Git behavior, but they recommend rebasing. However, I want to keep branches, to make it easier to find areas that were pulled from another branch obviously. Apparently, it was the right choice, because my logs are identical between HEAD and origin/master, so it looks like it copied the history straight from the remote origin, right..? Still, I'm lost, I'm not sure what's best for communication between my repos.
2/ In my current situation, I'm pushing my own changes to the remote origin directly, when I could be doing a repo on my account, and then push it to the team account's repo. However, I don't know how to do these pushes manually or automatically, especially on a remote server, so... A bit stuck. FWIW, I don't know how the current collaborators (Pandos and TE) can merge their own branches with the updates on the official repo. Honestly, it eludes me. I need some frigging documentation on that, I guess.
3/ Bitbucket sucks, somehow. They won't allow me to add a fake e-mail address to my account, so I can't associate nao@wedge with my own account. Sucks. Big time. However, since it will end up at github eventually, it won't be a problem, soon. However, my biggest problem is that Bitbucket uses my 'actual' e-mail address for web-based commits (e.g. pull requests), thus I currently have, in the online (private!) repo, my e-mail address in the clear. I don't want that. Github provides no-spam addresses, so I'm okay with that, but BB doesn't have anything. I'm forced to commit with that e-mail address, no way to conceal it.
I tried 'amending' my latest commit, but it didn't work. I don't know if it's because the latest commit is not technically from my git account that I can't seem to actually amend it, or if it's just how it works (doesn't work). I did 'git commit --amend --reset-author' in a bash window, and it simply launched a Vim page with the commit data. I didn't know what to do, so I just closed the window. TortoiseGit didn't offer to amend. SmartGit offered to do it, but I can't seem to make it work. Finally, Git Gui did the amend as I asked, but it didn't change the author at all (couldn't find an option to --reset-author, which probably didn't help.)
Anyone knows how I can fix that particular commit....?
:edit: Actually-- I just restarted my TortoiseGit log (which I'd only 'refreshed'), and it marked the commit as using my dummy e-mail address. Yoohoo! Well, it's still not cool that I'm going to have to amend all of my future pull request merges, but... Well, it's an extra incentive to hurry up and go public, ah ah...!
4/ Right now I have 36 uncommitted files, with three thematic changesets: privacy rewrite, contact list stuff, and miscellaneous one-bits. Is there a way to split these into several branches, so that I can safely work on them separately, and then commit as needed? Or do I absolutely need to create a branch, then start my stuff? I'm guessing I could always 'stash' the changes, then create a branch, then unstash..? (But then I need to selectively stash for each file, which I don't think is possible, ah ah...)
Okay, that's all for now...
I'm a bit annoyed that I've been spending the better part of the last 3 days working on the git innards, instead of actually committing my private rewrites, but... Whatever. I have to do it. It's the only way Wedge can keep up, at this point. It's so easy to do pull requests, I want to enable anyone to do them. I'm just hoping I can live up to it, see..? What's a fantastic git repo, if the maintainer isn't able to do the basic stuff...? :P
(1) my issues may be resolved by more people,
(2) anyone can learn, too, and later be able to contribute to the repo when it's made public.
So... Wedge is now a git repo (yaaaaay...), and leaves SVN behind. (I'm not completely finished with it, as I plan to restore revision numbers through either tags or notes, whatever is best, in the future, when I have a bit more time to devote to that.)
Git is a complicated beast to master, and I'm only getting started.
Notably, what needs to be 'understood' is how communicating between repos is made. Since it's not stored on a central server, no repo is the 'right' repo, so I consider the right repo to be my local repo. For all intent though, it's exactly like the BitBucket private repo I have right now, since my 'origin' ref is set to that one.
There are 4 matters that I wish to solve before I can continue. (Maybe 5, but I can't remember the last one, it'll come back to me.)
1/ When doing a pull from my remote origin, TortoiseGit fails because some files I've edited locally were changed in the meantime on the remote repo. It told me to stash my uncommitted changes, but I can't find a stash command in TortoiseGit. So, I fired up SmartGit, and tried to pull from there. It offered me a choice between merging and rebasing. I chose merging as it's the default Git behavior, but they recommend rebasing. However, I want to keep branches, to make it easier to find areas that were pulled from another branch obviously. Apparently, it was the right choice, because my logs are identical between HEAD and origin/master, so it looks like it copied the history straight from the remote origin, right..? Still, I'm lost, I'm not sure what's best for communication between my repos.
2/ In my current situation, I'm pushing my own changes to the remote origin directly, when I could be doing a repo on my account, and then push it to the team account's repo. However, I don't know how to do these pushes manually or automatically, especially on a remote server, so... A bit stuck. FWIW, I don't know how the current collaborators (Pandos and TE) can merge their own branches with the updates on the official repo. Honestly, it eludes me. I need some frigging documentation on that, I guess.
3/ Bitbucket sucks, somehow. They won't allow me to add a fake e-mail address to my account, so I can't associate nao@wedge with my own account. Sucks. Big time. However, since it will end up at github eventually, it won't be a problem, soon. However, my biggest problem is that Bitbucket uses my 'actual' e-mail address for web-based commits (e.g. pull requests), thus I currently have, in the online (private!) repo, my e-mail address in the clear. I don't want that. Github provides no-spam addresses, so I'm okay with that, but BB doesn't have anything. I'm forced to commit with that e-mail address, no way to conceal it.
I tried 'amending' my latest commit, but it didn't work. I don't know if it's because the latest commit is not technically from my git account that I can't seem to actually amend it, or if it's just how it works (doesn't work). I did 'git commit --amend --reset-author' in a bash window, and it simply launched a Vim page with the commit data. I didn't know what to do, so I just closed the window. TortoiseGit didn't offer to amend. SmartGit offered to do it, but I can't seem to make it work. Finally, Git Gui did the amend as I asked, but it didn't change the author at all (couldn't find an option to --reset-author, which probably didn't help.)
Anyone knows how I can fix that particular commit....?
:edit: Actually-- I just restarted my TortoiseGit log (which I'd only 'refreshed'), and it marked the commit as using my dummy e-mail address. Yoohoo! Well, it's still not cool that I'm going to have to amend all of my future pull request merges, but... Well, it's an extra incentive to hurry up and go public, ah ah...!
4/ Right now I have 36 uncommitted files, with three thematic changesets: privacy rewrite, contact list stuff, and miscellaneous one-bits. Is there a way to split these into several branches, so that I can safely work on them separately, and then commit as needed? Or do I absolutely need to create a branch, then start my stuff? I'm guessing I could always 'stash' the changes, then create a branch, then unstash..? (But then I need to selectively stash for each file, which I don't think is possible, ah ah...)
Okay, that's all for now...
I'm a bit annoyed that I've been spending the better part of the last 3 days working on the git innards, instead of actually committing my private rewrites, but... Whatever. I have to do it. It's the only way Wedge can keep up, at this point. It's so easy to do pull requests, I want to enable anyone to do them. I'm just hoping I can live up to it, see..? What's a fantastic git repo, if the maintainer isn't able to do the basic stuff...? :P




