| 2012-01-07 |
| ← beatak_m left | 00:00 |
| ← churp left | 00:00 |
|
sitaram
| ShadeHawk: if I had to convince a PHB to move to a DVCS (any DVCS), section 1 of hginit.com wins over the git parable; though I'd have someone turn it into a presentation :-) | 00:00 |
| ← rendar left | 00:01 |
| ← stringoO left | 00:01 |
|
ShadeHawk
| sitaram: doesn't Pro Git include that? | 00:02 |
|
| sitaram: anywa, we have now the new source: "Version Control by Example" by Eric Sink (with examples in Subversion, Mercurial, Git and their own new enterprisy DVCS Veracity) | 00:03 |
|
| sitaram: and VCBE has nice chapter discussing merits and demerits of DVCS | 00:04 |
|
sitaram
| wow | 00:04 |
|
| veracity... rings a bell | 00:04 |
| ← nixmaniack left | 00:05 |
|
sitaram
| oh | 00:05 |
|
| these are the guys who claim "formal rename" as a plus point... I remember now | 00:05 |
| ← alexgl left | 00:06 |
| ← linusoleander left | 00:06 |
| ← BonQuisha left | 00:06 |
| → Morphous_ joined | 00:06 |
|
sitaram
| ShadeHawk: https://plus.google.com/115609618223925128756/posts/PDPdXTxAvZk | 00:06 |
| → stringoO joined | 00:06 |
| → BonQuisha joined | 00:07 |
| ← johnanderson left | 00:07 |
| → johnanderson joined | 00:07 |
| ← jaequery left | 00:08 |
|
ShadeHawk
| "Mercurial only needs enough letters to disambiguate, and there are no other commands that start with st." <-- I wonder if it would be worth to add this feature to Git (in addition to existing help.autocorrect (!!!)) | 00:08 |
| ← flavius left | 00:09 |
|
mugwump
| ShadeHawk: tab completion is better I think | 00:09 |
| → linusoleander joined | 00:09 |
| → jaequery joined | 00:09 |
|
sitaram
| ShadeHawk: could also mess with many people's aliases, no? | 00:10 |
|
ShadeHawk
| mugwump: yep, though only bash and zsh are supported (the completion stuff from contrib covers both, but IIRC there is also native zsh one) | 00:12 |
|
Mikachu
| the one distributed with zsh is much better, yes | 00:12 |
|
ShadeHawk
| mugwump: cmd.exe is not supported, I don't think ;-) | 00:12 |
| ← Akufen left | 00:13 |
|
| mugwump quickly ports git-completion.bash to 4DOS | 00:13 |
| → delight joined | 00:13 |
|
ShadeHawk
| Mikachu: in what sense is zsh completion from zsh better than one from contrib area in git.git? More commands supported, more up-to-date, or better context sensitivity (e.g. competing refs where applicable)? | 00:13 |
|
jahid
| is there any easy tutorial about making a git that will be accessed over the internet? | 00:13 |
| ← Bartzy left | 00:13 |
|
Mikachu
| ShadeHawk: the last one | 00:13 |
| ← mandric left | 00:14 |
|
cmn
| jahid: try out !gitolite | 00:14 |
|
ShadeHawk
| jahid: what do you mean by "making the git"? | 00:14 |
|
gitinfo
| jahid: gitolite allows you to host any number of repositories with extensive access control options for any number of users, using just one system account: http://github.com/sitaramc/gitolite | 00:14 |
|
ShadeHawk
| !gitinfo | 00:14 |
|
gitinfo
| I am an IRC bot which responds to certain keywords to provide helpful(?) information to humans. Please see http://jk.gs/git/bot for more information about how to use me. | 00:14 |
|
jahid
| ShadeHawk, making a git repo | 00:14 |
| → niloc132_ joined | 00:14 |
| ← penguinbait left | 00:14 |
|
ShadeHawk
| jahid: "git init" | 00:15 |
|
sitaram
| --bare | 00:15 |
|
| (at the very least) | 00:15 |
|
ShadeHawk
| sitaram: I think that "enough letters to disambiguate" would trigger as last resort, and only for commands | 00:16 |
| ← niloc132_ left | 00:16 |
|
jahid
| ShadeHawk, I tried all these, and finally did a git bare remote | 00:16 |
| ← ramsey left | 00:16 |
|
sitaram
| ShadeHawk: I guess yeah, but we'd have to learn to stop occasionally mis-spelling our own aliases in case they get mistaken for a git command :) | 00:16 |
|
jahid
| but didnt work when tried to access over ssh | 00:16 |
|
sitaram
| jahid: !doesntwork | 00:17 |
|
gitinfo
| jahid: What happened? Did it fall asleep on your couch? Eat your homework? Destroy your hard drive? Is it making faces at you? Does it want more money? Is it sleeping with your best friend? Please be specific! | 00:17 |
|
| sitaram *loves* that one | 00:17 |
| ← brian_g left | 00:18 |
|
jahid
| sitaram, the remote guy can access my comp using ssh, but when he tried to do git clone, he gets message like "remote comp hanged ...." | 00:18 |
| → signal-9 joined | 00:19 |
| ← spiette left | 00:19 |
|
ShadeHawk
| does help.autocorrect work for aliases? help.shortcuts would work the same way ;-/ | 00:19 |
| ← z0n3d left | 00:19 |
|
sitaram
| jahid: "can access" means he can get a shell? | 00:19 |
|
jahid
| sitaram, yes | 00:20 |
| ← iocor left | 00:20 |
|
ShadeHawk
| jahid: please tell us how exactly he tried to clone (whole command), and how he checked that SSH acces work | 00:20 |
| ← linusoleander left | 00:20 |
|
ShadeHawk
| e.g. | 00:20 |
|
sitaram
| jahid: if so, a "git clone" or whatever should also work, except for possible network speed/disconnect issues that may break the connection | 00:20 |
|
ShadeHawk
| $ ssh git.example.com hostname | 00:20 |
|
jahid
| ShadeHawk, git clone abc@my_IP:/opt/git/mygit.git | 00:20 |
|
Mikachu
| note also that foo:path is relative to homedir, while ssh:// is relative to / | 00:20 |
|
FauxFaux
| Mikachu: ssh://foo@bar:port/~/lol/ works. | 00:21 |
|
jahid
| ShadeHawk, he checked ssh works by logging in with "ssh abc@my_ip" | 00:21 |
|
Mikachu
| sure, just mean by default, if you don't type a leading / | 00:21 |
| → brian_g joined | 00:21 |
|
Mikachu
| jahid: can you git clone /opt/git/mygit.git on that machine? | 00:21 |
|
jahid
| yes | 00:21 |
|
sitaram
| jahid: but after logging in, does he have permissions to read /opt/git/mygit.git? | 00:21 |
|
jahid
| yes | 00:21 |
|
sitaram
| jahid: is it a large repo? | 00:22 |
|
Mikachu
| is the git upload-pack stuff in $PATH for noninteractive shells? | 00:22 |
|
| or whatever it is | 00:22 |
|
jahid
| was my cloning right? "git clone abc@my_ip:/opt/git/my_git.git" | 00:22 |
|
ShadeHawk
| jahid: check non-interactive shell, like "ssh abc@my_IP git --version" | 00:22 |
|
jahid
| for ssh do i have to use antying like ssh? | 00:22 |
| → linusoleander joined | 00:22 |
|
sitaram
| remove the ":" | 00:23 |
|
ShadeHawk
| jahid: git must be installed on server (at least git-upload-pack and git-receive-pack must be somewhere you know) | 00:23 |
|
Mikachu
| sitaram: err? | 00:23 |
|
jahid
| ShadeHawk, no :o | 00:23 |
|
| i just installed git-core | 00:24 |
|
sitaram
| Mikachu: he had 'git clone abc@IP:/path'; I said that colon needs to go. Is that not right (/me goes off to double check) | 00:24 |
|
Mikachu
| no, the : should be there | 00:24 |
|
ShadeHawk
| sitaram, jahid: "url = [email@hidden.address] works for me | 00:24 |
| ← dankest left | 00:24 |
|
sitaram
| Mikachu: oops;you're right. I claim it's too early in the morning and I haven't woken up yet :) | 00:25 |
|
jahid
| ShadeHawk, when i do "apt-get" for "git-upload-pack" and "git_receive-pack", it says unable to locate package | 00:25 |
| ← lonewulftp left | 00:25 |
|
ShadeHawk
| sitaram: "git gui blame" and "git blame -w -C -C" are wonderfull tools | 00:25 |
|
sitaram
| jahid: does he get any output at all before the "hangup"? | 00:26 |
|
ShadeHawk
| sitaram: and code movement _tracking_ would not work at all | 00:26 |
|
sitaram
| ShadeHawk: what does "-w" do? | 00:26 |
|
jahid
| sitaram, "remote computer hanged unexpectedly" | 00:27 |
|
ShadeHawk
| jahid: try "git clone --verbose ...", and perhaps also GIT_TRACE=some-file | 00:27 |
| ← baburdick left | 00:27 |
| → penguinbait joined | 00:27 |
| ← penguinbait left | 00:27 |
| → penguinbait joined | 00:27 |
|
cmn
| git-upload-pack and git-receive-pack are part of the normal git package in any reasonable package | 00:27 |
| → dv310p3r joined | 00:27 |
| → baburdick joined | 00:27 |
|
ShadeHawk
| sitaram: "-w" is passed to diff, and means ignore whitespace (very useful for finding code movement, which is usually accompanied by reindent) | 00:27 |
| ← grekko left | 00:28 |
| ← brian_g left | 00:28 |
| → lonewulftp joined | 00:28 |
|
ShadeHawk
| cmn: I meant here that minimally you can install those two locally, and it would work if you configure it right | 00:28 |
| ← monokrome left | 00:28 |
|
cmn
| agree, the comment was to jahid searching for those packages | 00:28 |
| ← dv310p3r left | 00:29 |
| → dv310p3r joined | 00:30 |
|
lonewulftp
| ... | 00:30 |
|
ShadeHawk
| sitaram: about https://plus.google.com/115609618223925128756/posts/PDPdXTxAvZk -- I am not sure (from what I have read in VCBE) that how Veracity implements locking is correct and useful | 00:31 |
|
sitaram
| ShadeHawk: I suspected as much | 00:31 |
|
| ShadeHawk: inconsistent with "D"VCS fundamentally | 00:31 |
|
| ShadeHawk: http://sitaramc.github.com/tips/blame-detection-and-C-levels.html <-- your comments appreciated (bit old though; I wrote it long ago) | 00:31 |
| ← neurodrone left | 00:32 |
|
ShadeHawk
| sitaram: anyway for locking support in DVCS, blocking on lock must be build in or doable via hooks | 00:32 |
| ← koo4 left | 00:33 |
| → monokrome joined | 00:33 |
|
ShadeHawk
| And now for something completly different -- I wonder if it would be useful to have gits:// protocol, i.e. git:// over SSL / TLS | 00:34 |
| ← k299 left | 00:34 |
|
sitaram
| ShadeHawk: I can do that on the server side to block a push but by then the manual effort of the change has already been made on the client. You will need a client that queries and honors advisory locks | 00:34 |
|
| ShadeHawk: wouldn't socat or such already be able to do that if you wanted to? | 00:35 |
|
ShadeHawk
| sitaram: pre-commit hook, or built-in into commit with ability to break locks | 00:35 |
| ← macRover left | 00:36 |
| ← Shusshu left | 00:36 |
| → zsw joined | 00:36 |
| ← toabctl left | 00:37 |
|
zsw
| Is there a way to pull a remote branch without changing from master beforehand? | 00:37 |
|
sitaram
| fetch yes, but 'pull' -- which requires a merge -- no | 00:37 |
| → mloskot joined | 00:38 |
| ← mloskot left | 00:38 |
| → mloskot joined | 00:38 |
|
ShadeHawk
| or rebase, but lets not go into that ;-) | 00:38 |
|
sitaram
| you can even force your local copy to be the same as the remote while still being on master but if you have independant changes that need to be merged, you need to checkout the branch and do the merge | 00:38 |
|
| zsw: this is because a merge *potentially* requires manual intervention, so it needs a working tree, so it can only be on the checked out branch | 00:39 |
|
zsw
| sitaram: ah yes, thank you. | 00:39 |
| → Goplat joined | 00:40 |
| ← v0n left | 00:40 |
| ← d0k left | 00:40 |
|
ShadeHawk
| sitaram: use sockat to establisg secure tunnel, or something? I was thinking about using gits:// in URL, which would be much simpler (though I wonder if socat can be used to write remote helper for gits://) | 00:42 |
| ← monokrome left | 00:42 |
| ← TheShagg left | 00:43 |
| ← drizzd left | 00:44 |
| → fourcolors joined | 00:44 |
|
sitaram
| ShadeHawk: true. I was just saying that conceptually it should not be hard and should not require protocol fiddling | 00:44 |
| → reklipz joined | 00:44 |
| ← DarkAR left | 00:44 |
| ← ipalaus_ left | 00:45 |
| ← AaronMT left | 00:45 |
|
sitaram
| ShadeHawk: the big problem with SSL is server side certs. Sshd host key is more "personal" -- so you accept the "is this key ok to add to known hosts?" thing much more confidently than you would for an SSL "cert unknown" prompt | 00:45 |
|
ShadeHawk
| and on server side you would have to fiddle with git-daemon and socat or something yourself | 00:46 |
|
reklipz
| Is it possible to have git ignore the autocrlf setting for certain files? For instance, MS-DOS batch scripts require CRLF line endings. If these files change with any frequency, using the autocrlf feature makes this a nightmare (especially if they are committed with files that the autocrlf feature should apply to). | 00:46 |
|
ShadeHawk
| reklipz: man gitattributes | 00:46 |
|
gitinfo
| reklipz: the gitattributes manpage is available at http://jk.gs/gitattributes.html | 00:46 |
|
reklipz
| ShadeHawk: Perfect; thank you! | 00:47 |
| ← reklipz left | 00:48 |
|
sitaram
| uggh... "branch the mercurial way, by cloning repositories". Just as SVN conflates branch with directory, Hg seems to consistently conflate branch with clone | 00:48 |
|
| SethRobertson: ^ | 00:48 |
| ← warthog9 left | 00:49 |
|
SethRobertson
| Remember, I was only recommending the website as form over function. | 00:49 |
|
| Mercurial branches are really weird. Not normal | 00:49 |
| → monokrome joined | 00:50 |
| → boombatower joined | 00:50 |
|
sitaram
| SethRobertson: oh yeah, I have ranted about Hg branches before. Not to mention their crazy "bookmarks" and the thrashing over how they should behave | 00:50 |
|
ShadeHawk
| sitaram: ad http://sitaramc.github.com/tips/blame-detection-and-C-levels.html -- I think that "git gui blame" uses "-w -C -C" for code movement detection | 00:50 |
|
| sitaram: and it needs <title> too | 00:50 |
|
sitaram
| I thikn they all need titles :-) I have to look into that later... thanks | 00:51 |
|
| ShadeHawk: if you're sure about the "-w" I'll just add that in; I already said it does "-C -C" | 00:52 |
|
ShadeHawk
| sitaram: with "bookmark branches" now transferrable in modern Mercurial, clone to branch in Mercurial is no longer true (thoigh hgbook still starts from that as supposedly simpler workflow) | 00:52 |
|
mugwump
| you need to branch by cloning with mercurial, otherwise you can't delete revisions you didn't mean to make | 00:52 |
|
ShadeHawk
| sitaram: best to check in "git gui" code, but as it ignores reindent I think it does use "-w" | 00:52 |
| → warthog9 joined | 00:53 |
| → uu joined | 00:53 |
| ← setmeaway left | 00:53 |
| ← boombatower left | 00:54 |
|
ShadeHawk
| anyway so "bookmark branches" are transferrable... but they have global namespace, I think to avoid remote-tracking branches ides and remote name to remotr-tracking name ref mapping | 00:54 |
|
| ^ in Mercurial | 00:54 |
| → setmeaway joined | 00:55 |
| → ehsan joined | 00:56 |
| ← hxts left | 00:56 |
|
sitaram
| I always felt Hg had a lot of "we won't admit we got it wrong in the first place" issues | 00:57 |
| ← baburdick left | 00:57 |
|
sitaram
| in respect of bookmarks, branches, and how git does it versus how Hg does it | 00:57 |
| → baburdick joined | 00:58 |
| ← ehsan left | 00:58 |
| ← jonshea left | 00:58 |
| ← Agos left | 00:58 |
| ← FernandoBasso left | 00:59 |
| ← pantsman left | 01:01 |
| ← fourcolors left | 01:02 |
|
ShadeHawk
| sitaram: tags in Mercurial, ehhh... | 01:03 |
| ← ScottE left | 01:04 |
| ← dreiss left | 01:04 |
| ← Chaser left | 01:04 |
|
ShadeHawk
| anyway, having git-serve (gitweb + git-daemon + smart HTTP) would be nice; Perl HTTP::Server::Simple perhaps (where Mercurial uses Python's one whatever it is) | 01:04 |
|
| ? | 01:04 |
|
| BTW I wonder if gitweb would have to be modified to support multi-line headers (signed commits and merges of signed tags) | 01:07 |
|
jast
| so, not git-instaweb? | 01:07 |
| → ehsan joined | 01:08 |
| ← apok left | 01:08 |
|
jast
| I think it should be possible to extend instaweb to do smart HTTP, though I don't care nearly enough about that feature to be the one to do it ;) | 01:08 |
|
ShadeHawk
| jast: git-instaweb is only about 1 i.e gitweb of of 3: gitweb, git-daemon, git-http-backend (aka "smart" HTTP) | 01:08 |
|
jast
| adding git-daemon is trivial | 01:09 |
|
ShadeHawk
| hmmm... good idea (it could be e.g. 'git instaweb --serve') | 01:11 |
|
| git-daemon standalone is not enough to be feature-equivalent with hg-serve, unless git-instaweb would enable pushing via git:// in git-daemon | 01:11 |
| ← jaequery left | 01:11 |
| → neurodrone joined | 01:12 |
|
jast
| which it could, but it's not that useful to support anonymous push | 01:12 |
| ← kenperkins left | 01:14 |
| ← Rogi_ left | 01:15 |
|
ShadeHawk
| sitaram: a bit of self promotion wrt. Git vs Mercurial comparison: http://stackoverflow.com/questions/1598759/git-and-mercurial-compare-and-contrast/1599930#1599930 (note that it is from Aug 2011; things change) | 01:15 |
|
| jast: hg-serve has unathenthicated push too, isn't it? | 01:15 |
| ← jahid left | 01:15 |
|
ShadeHawk
| unauthenthicated and anonymous | 01:15 |
|
sitaram
| ShadeHawk: looking... | 01:16 |
|
| ShadeHawk: I'll check it out when I come back; have to go away now... weekend chores :-( | 01:16 |
| ← ldlework left | 01:17 |
|
| ShadeHawk wonders about localtime difference with sitaram | 01:17 |
| ← kenichi left | 01:19 |
| ← ehsan left | 01:20 |
|
jast
| ShadeHawk: I have no idea... but it shouldn't. ;) | 01:22 |
| → JustMozzy joined | 01:22 |
|
JustMozzy
| hi guys. is there anyway to undo a checkout? :s | 01:23 |
|
jast
| ShadeHawk: hg serve does the same thing by default as git-daemon | 01:23 |
|
| and you can optionally enable anonymous push | 01:23 |
|
ShadeHawk
| ah | 01:24 |
|
JustMozzy
| I think it is not possible... but maybe someone here knows better? I accidentally called checkout on a file which was not committed yet :s is there a way to undo that? | 01:24 |
|
SethRobertson
| JustMozzy: !lost | 01:27 |
|
gitinfo
| JustMozzy: As long as you have `git commit`ed your changes (or even `git add`ed them), your changes will not be lost for over two weeks unless you work really hard at it. There are two places where "lost" changes can be hiding. They might be in the reflog (`git log -g`) or they might be in lost&found (`git fsck --unreachable`). Type "!dangling" and "!reflog" into IRC for more info. | 01:27 |
|
JustMozzy
| yupp, then they are lost... oh well... at least it was only one file | 01:28 |
| ← baburdick left | 01:28 |
|
SethRobertson
| If you had not committed or added the file, it is toast. Read !best_practices for information about avoiding this (and the dangers of checkout in file mode) | 01:28 |
|
gitinfo
| There is no one right answer for git best practices, but a consensus from #git is available at https://gist.github.com/1540906 | 01:28 |
| → brian_g joined | 01:28 |
| ← spyro left | 01:29 |
| → spyro joined | 01:29 |
|
EugeneKay
| That is a wall of a page. | 01:30 |
| → baburdick joined | 01:30 |
|
SethRobertson
| That is a bicycle of a comment | 01:30 |
| → cannonball joined | 01:30 |
| ← millerti left | 01:31 |
| → boombatower joined | 01:32 |
| → jonshea joined | 01:33 |
| ← boombatower left | 01:33 |
| → MarcWeber joined | 01:33 |
|
MarcWeber
| Is there a way to reset a commit to the contents of another commit without taking history? | 01:33 |
|
| I'd like to squash many commits - but squashing would cause many conflicts | 01:34 |
| ← ericmuyser left | 01:34 |
| fr0stbyte → ericmuyser | 01:34 |
| → ericm joined | 01:34 |
|
kevlarman
| MarcWeber: um, what? | 01:34 |
| ← zsw left | 01:34 |
| ← ObseLeTe left | 01:34 |
|
SethRobertson
| MarcWeber: I think you want this: !branch_replace | 01:34 |
|
gitinfo
| MarcWeber: To replace one branch with the contents of another: git clean -dfx; git checkout $destination; git reset --hard $source; git reset --soft ORIG_HEAD; git add -A .; git commit -m "Rewrite $destination with $source"; git merge -s ours $source | 01:34 |
|
SethRobertson
| source doesn't have to be a branch, it could be a random SHA | 01:35 |
| ← spyro left | 01:36 |
|
MarcWeber
| git add -A may add random files. | 01:36 |
|
SethRobertson
| Not after the other commands | 01:36 |
|
MarcWeber
| Then I can create a diff and apply it - I don't have binaries. | 01:36 |
| ← penguinbait left | 01:36 |
| → diegoviola joined | 01:36 |
| → Sir_Rai joined | 01:36 |
|
MarcWeber
| clean -d, right | 01:36 |
|
Sir_Rai
| Hi | 01:37 |
| ← brian_g left | 01:37 |
|
kevlarman
| SethRobertson: that's a bit of a nuclear option isn't it? | 01:37 |
| → Prasad joined | 01:37 |
| ← mkg7 left | 01:38 |
|
SethRobertson
| kevlarman: perhaps, but it appears to answer the problem description | 01:40 |
| ← dv310p3r left | 01:40 |
|
signal-9
| greetings all. I am trying to push to my github pages account. I have not got the first push to work. When I input the command 'git push origin gh-pages' it tells me the repository is not found. Do I have to create a new repository called gh-pages and push to that? | 01:41 |
|
SethRobertson
| `git remote` says what? | 01:41 |
|
signal-9
| SethRobertson: it outputs 'origin' | 01:42 |
|
SethRobertson
| Can you !repro this for us? | 01:42 |
|
gitinfo
| please paste (e.g. using http://git.pastebin.com/) a transcript of your terminal session in which the problem occurred so that we can troubleshoot more easily. | 01:42 |
| ← robotmay left | 01:43 |
|
signal-9
| gitinfo: here is the paste http://pastebin.com/hfe6RTg1 | 01:44 |
| ← RaptorX left | 01:44 |
| → dreiss joined | 01:45 |
|
SethRobertson
| How about `git remote show origin` Are the URLs correct? | 01:46 |
|
signal-9
| SethRobertson: I am not farmiliar with !repro can you tell me how to do this | 01:46 |
|
gitinfo
| SethRobertson: please paste (e.g. using http://git.pastebin.com/) a transcript of your terminal session in which the problem occurred so that we can troubleshoot more easily. | 01:46 |
|
SethRobertson
| you did it | 01:46 |
|
jameslord
| hi | 01:47 |
|
SethRobertson
| signal-9: !gitinfo | 01:47 |
|
gitinfo
| signal-9: I am an IRC bot which responds to certain keywords to provide helpful(?) information to humans. Please see http://jk.gs/git/bot for more information about how to use me. | 01:47 |
|
jameslord
| how to push all local branches to a bare remote repo? | 01:47 |
|
| http://paste.ubuntu.com/795586/ | 01:47 |
|
cbreak
| git push bareremote --all | 01:48 |
|
signal-9
| SethRobertson: here is the paste for git show | 01:48 |
|
cbreak
| surprise | 01:48 |
|
signal-9
| http://pastebin.com/Ws73ZMDf | 01:48 |
|
jameslord
| seems only one branch is pushed to remote | 01:48 |
| → spyro joined | 01:48 |
| → kylef joined | 01:48 |
|
cbreak
| jameslord: because you only push one. | 01:48 |
| ← Prasad left | 01:48 |
|
cbreak
| are you that surprised that git does what you tell it to? | 01:48 |
|
kylef
| Is it possible to use "git checkout-index" with submodules? | 01:49 |
|
cbreak
| what for? | 01:49 |
| ← thiago left | 01:49 |
|
SethRobertson
| signal-9: that is all messed up. Can you paste your .git/config file? | 01:49 |
| ← friskd left | 01:49 |
| ← delight left | 01:50 |
|
signal-9
| SethRobertson: http://pastebin.com/LdSM1Mgv | 01:50 |
| → apok joined | 01:51 |
|
jameslord
| thank you | 01:51 |
|
SethRobertson
| signal-9: your URL is messed up. You need to git remoet set-url origin URL | 01:51 |
| → flip_digits joined | 01:51 |
|
SethRobertson
| THe URL is given to you in your github page. [email@hidden.address] | 01:52 |
|
jameslord
| my networks is not very good, so connection out when using git is usual, if a git process is interrupted , can it start from the point it is interrupted, or it is a transaction, can only fail as a whole | 01:53 |
|
SethRobertson
| no restarts | 01:53 |
|
| If you want to do something like that, you need to create a git-bundle type architecture and transfer using a restarting protocol and program | 01:53 |
|
| Not recommended | 01:53 |
|
| Well, recommended. Just not simple | 01:54 |
|
jameslord
| which protocol is recommended? ssh is ok? | 01:54 |
|
SethRobertson
| ssh has the highest recommendation, but does not restart (without some kind of bundle+rsync thing) | 01:54 |
|
| http* restarts more by default, but is harder to use for most things. In any case, creating a bundle architecture would allow restarting more easily | 01:55 |
|
jameslord
| oh, if failed, all should begin from zero? | 01:55 |
|
SethRobertson
| clones restart from zero. pulls/pushes restart from the previous pull/push | 01:55 |
|
jameslord
| if that is a quite large project, for example i git clone ssh:// android, if failed, i should start from zero? | 01:56 |
|
SethRobertson
| yes | 01:56 |
|
jameslord
| that is huge amount of code:( | 01:57 |
| ← wilmoore left | 01:57 |
|
jameslord
| but if i use http , it need not to start from zero? | 01:57 |
|
SethRobertson
| You could clone it somewher elese with good network, then create a tarball from the clone, and then use a restarting protocol (rsync+ssh or http) to download the tarball | 01:57 |
| → boombatower joined | 01:58 |
|
jameslord
| the problem is if i want to use ssh + rsync, the git server should support rsync, right? | 01:58 |
| ← j416 left | 01:58 |
| ← baburdick left | 01:58 |
|
jameslord
| not all remote repo support resyc, anyhow | 01:58 |
|
sitaram
| ShadeHawk: it's now 7:29am here in India | 01:59 |
|
karstensrage
| is there a way to have something committed in my local repo pushed to one remote but not to another | 01:59 |
|
jameslord
| 10:00 am here:) | 01:59 |
|
cbreak
| jameslord: just get a non-sucky network | 01:59 |
| ← Araxia_ left | 01:59 |
|
SethRobertson
| jameslord: None of this stuff can be done with a standard git server. It is all stuff you must do with a shell account | 01:59 |
| → baburdick joined | 02:00 |
|
SethRobertson
| karstensrage: Yes, you do not push the branches with that commit to the remote you do not want that commit on | 02:00 |
|
| jameslord: So for instance you could fire up an amazon instance, clone your thing, then rsync (with restart) to the amazon instance. Shut down the instance nad use it directly from then on | 02:00 |
| → dcarper1 joined | 02:01 |
|
signal-9
| SethRobertson: much respect http://jsudlow.github.com/ | 02:01 |
| → mxweas joined | 02:02 |
|
karstensrage
| SethRobertson, hmm thats an interesting though, how would that be set up usually? like if i have a working branch that is for my own development and my own repo and then another branch that is for github only, what would that workflow look like? | 02:02 |
|
SethRobertson
| signal-9: nice | 02:02 |
|
karstensrage
| s/though/thought | 02:02 |
| → txomon|home joined | 02:02 |
|
sitaram
| ShadeHawk: I had seen that before; read it all through too (I think shortly after you first posted it) | 02:02 |
|
SethRobertson
| karstensrage: Is this like a configuration file thing? If so then see ideas referenced in !config_files | 02:03 |
| ← ASIRINeiluj left | 02:03 |
|
SethRobertson
| !configfiles | 02:03 |
|
gitinfo
| the recommended way is to change your application so that you can (perhaps optionally) store site-specific configuration/data in separate files, then keep those files out of version control. Still, see https://gist.github.com/1423106 for ways people have worked around the problem. | 02:03 |
|
jameslord
| SethRobertson now i am using DH host:) | 02:07 |
| → nadavoid joined | 02:08 |
| ← amigojapan left | 02:08 |
| → macabre joined | 02:10 |
| → cccaldas joined | 02:11 |
| → BiggFREE joined | 02:12 |
| ← steffo left | 02:15 |
|
karstensrage
| SethRobertson, this is actual code, unit test .java files | 02:15 |
| ← [M]ax left | 02:17 |
| → kevwil_ipad joined | 02:17 |
| → [M]ax joined | 02:18 |
| → ttuttle joined | 02:19 |
|
ttuttle
| hi guys | 02:19 |
|
| I have my repo set up with four branches: | 02:20 |
|
| upstream, feature-upstream, local, and feature-local. | 02:20 |
|
| I have developed a feature in feature-upstream, on top of upstrea. | 02:20 |
|
| I would like to port those commits over to feature-local, on top of local. | 02:20 |
|
| No matter what I feed to rebase, it always does something wrong (usually mangling feature-upstream). | 02:21 |
| ← ISF_ left | 02:21 |
|
SethRobertson
| ttuttle: Do you want to copy or move? | 02:21 |
|
ttuttle
| copy | 02:21 |
|
| ...oh. | 02:22 |
|
cbreak
| git rebase --onto local upstream feature-upstream | 02:22 |
|
SethRobertson
| Are there other changes in feature or upstream which you do NOT want on local? | 02:22 |
| ← CollinPDX left | 02:22 |
|
ttuttle
| SethRobertson: I want to copy *only* upstream..feature- | 02:22 |
|
| er | 02:22 |
|
| upstream..feature-upstream | 02:22 |
| → CollinPDX joined | 02:23 |
| ← cccaldas left | 02:23 |
|
cbreak
| merge that into the branch you want and restore it if you want. | 02:23 |
|
SethRobertson
| ttuttle: I recommend `git cherry-pick` then, though a rebase of a copy of feature-upstream might work as well. | 02:23 |
|
ttuttle
| I dont want to merge. | 02:23 |
|
cbreak
| you want | 02:23 |
|
| it'll be ff | 02:23 |
|
ttuttle
| ? | 02:24 |
|
| if it weren't for reflog I'd've thrown this machine out the window by now | 02:24 |
|
cbreak
| just do what I told you | 02:25 |
|
| or if you want, make a temp copy of the branch | 02:25 |
|
| and rebase that | 02:25 |
|
| then you don't have to restore it after the merge but can delete it | 02:25 |
|
ttuttle
| "just do what I told you" is how one ends up not understanding git | 02:25 |
|
| I want to use rebase, and I want to know how to get it to do this right. | 02:25 |
|
cbreak
| read the man page if you want to understand it | 02:25 |
|
ttuttle
| I know enough about merge to know that I don't want it. | 02:26 |
|
cbreak
| you want it | 02:26 |
|
| obviously you don't know it enough :) | 02:26 |
|
| as I said above, it'll be fast forward | 02:26 |
|
| rebase --onto the branch you want it to be based on | 02:27 |
|
| then merge into that branch | 02:27 |
|
ttuttle
| okay, so, hold on a sec | 02:27 |
|
cbreak
| you can go the manual-labor route and cherry-pick the whole thing | 02:28 |
| ← ShadeHawk left | 02:29 |
| ← baburdick left | 02:29 |
|
ttuttle
| shouldn't this be a single rebase? | 02:29 |
|
cbreak
| it is... | 02:29 |
|
| + a merge | 02:29 |
|
ttuttle
| why do I need the merge? | 02:29 |
|
| I don't get that. | 02:29 |
|
cbreak
| rebase changes a branch by basing it on top of something | 02:29 |
| ← matsebc left | 02:29 |
|
ttuttle
| right | 02:29 |
|
cbreak
| you want the result to end up in a different branch | 02:29 |
|
| so you merge the result into that different branch | 02:30 |
|
ttuttle
| right, but Idon't want to modify the original either | 02:30 |
| ← kerrick left | 02:30 |
|
cbreak
| that's why you make a temp. copy of the branch | 02:30 |
|
ttuttle
| maybe rebase can't actually do this | 02:30 |
|
cbreak
| or restore it after the merge | 02:30 |
|
ttuttle
| oh | 02:30 |
|
| ugh. | 02:30 |
|
cbreak
| as I wrote above | 02:30 |
| → baburdick joined | 02:31 |
| ← kevwil_ipad left | 02:31 |
|
cbreak
| you know, cherry-pick does work... and it does support range. you're probably able to get a very similar result | 02:32 |
| ← tystr left | 02:32 |
|
ttuttle
| what yeah | 02:32 |
|
| I er | 02:32 |
|
| er | 02:32 |
|
| yeah | 02:32 |
|
| cherry-pick should do it | 02:32 |
|
| i just thought rebase could, too | 02:32 |
|
| I am fuzzy on what exactly is going wrong | 02:32 |
|
cbreak
| it can | 02:32 |
|
ttuttle
| no, I mean without any extra steps | 02:32 |
|
cbreak
| as I described above :) | 02:32 |
|
| rebase changes one branch only | 02:32 |
|
SethRobertson
| cherry-pick uses rebase internally, according to my imagination anyway | 02:33 |
|
ttuttle
| SethRobertson: it's the other way around for me | 02:33 |
|
cbreak
| I read it's the exact opposite | 02:33 |
|
| rebase uses git apply or git cherry-pick | 02:33 |
|
| (-i uses the latter) | 02:33 |
|
ttuttle
| okay, holy fuck, I got it to do what I want. | 02:34 |
|
| git checkout feature-local | 02:34 |
|
| git reset --hard feature-upstream | 02:34 |
|
| git rebase --onto local upstream | 02:34 |
|
| (apologies if that is isomorphic to what you just suggested, cbreak) | 02:35 |
|
SethRobertson
| This provides a command equivalence between the two for your sort of problem. Note that the cherry-pick range problem was eliminated | 02:35 |
|
| http://stackoverflow.com/questions/1994463/how-to-cherry-pick-a-range-of-commits-and-merge-into-another-branch | 02:35 |
|
cbreak
| that's more or less what I told you, just a different order :) | 02:35 |
|
ttuttle
| okay :) | 02:35 |
|
| yeah, the merge thing didn't make sense to me | 02:35 |
|
cbreak
| and potentially you lose some commits that way | 02:35 |
|
ttuttle
| I am allergic to merge, because it leaves merge commits, which I don't want | 02:35 |
|
| this way? how? | 02:35 |
|
cbreak
| because you didn't merge | 02:35 |
|
ttuttle
| *blink* | 02:35 |
|
| I don't understand why that matters? | 02:36 |
|
| it's still cherry-picking all of them under the hood, no? | 02:36 |
|
cbreak
| you nuked changes from feature-local that aren't in local | 02:36 |
|
ttuttle
| oh, that's fine | 02:36 |
|
| I didn't want them | 02:36 |
|
| the point here was "I want feature-local to be upstream..feature-upstream, but based on local" | 02:36 |
| → dorisabayon joined | 02:36 |
|
ttuttle
| anyway, thanks for the help! | 02:37 |
|
cbreak
| normally, you'd have lots of feature branches, not one :) | 02:37 |
|
ttuttle
| feature-upstream is where I developed it | 02:37 |
|
| cbreak has a few new ones every week | 02:37 |
|
ttuttle
| feature-local is just where I want it | 02:37 |
|
| oh, yeah | 02:37 |
|
| I mean, I have a few others | 02:37 |
|
| but most are developed against local. | 02:37 |
| → disappea_ joined | 02:38 |
| ← apok left | 02:38 |
|
cbreak
| ttuttle: you should take a look at man gitglossary | 02:39 |
|
gitinfo
| ttuttle: the gitglossary manpage is available at http://jk.gs/gitglossary.html | 02:39 |
|
cbreak
| the fast-forward section | 02:39 |
| ← Fandekasp left | 02:40 |
| ← cannonball left | 02:40 |
| ← kukks left | 02:41 |
| ← oriba left | 02:42 |
| → kerrick joined | 02:42 |
| → Vampire0 joined | 02:44 |
| ← nadavoid left | 02:46 |
| ← Vampire0_ left | 02:46 |
| ← BiggFREE left | 02:48 |
| ← ttuttle left | 02:49 |
| ← boombatower left | 02:50 |
| ← eletuchy left | 02:51 |
| ← mdel left | 02:52 |
| ← baburdick left | 02:53 |
| ← brainbox1100 left | 02:56 |
| ← _Vi left | 02:59 |
| → [RHQme]stringo0 joined | 02:59 |
| → _Vi joined | 03:00 |
| ← stringoO left | 03:02 |
| → boombatower joined | 03:02 |
| ← checkers left | 03:07 |
| → ISF_ joined | 03:07 |
| → riyonuk joined | 03:08 |
| → mjessome joined | 03:08 |
| → xerora joined | 03:09 |
|
riyonuk
| Okay, so I'm having some trouble understand some things. Git stores settings on a per-project basis, right? In the .git folder, of whatever folder you just cloned. So where are the "git --global settings" stored? /usr/bin? | 03:09 |
|
bremner
| $HOME | 03:11 |
|
| $HOME/.gitconfig | 03:11 |
|
| riyonuk: see man git-config ENVIRONMENT | 03:12 |
|
gitinfo
| riyonuk: the git-config manpage is available at http://jk.gs/git-config.html | 03:12 |
| ← _Vi left | 03:14 |
| → igotnolegs joined | 03:14 |
| ← crisp left | 03:15 |
|
riyonuk
| bremner: Ahh, thanks. Just did a "cat .gitconfig" and saw all my settings. Thanks:) | 03:15 |
| ← linusoleander left | 03:15 |
| → _Vi joined | 03:15 |
|
riyonuk
| So git is pretty much built for one person to be using that machine, right? | 03:15 |
|
| Like, it would be hell if multiple people used my laptop, as they'd have to re-configure their git settings? | 03:16 |
|
bremner
| riyonuk: huh? | 03:16 |
|
| would all of your users share the same home directory? | 03:16 |
| → simplechat joined | 03:16 |
|
riyonuk
| Like, if my friend wanted to write some code, using my macbook, how would he do that? So he too could push to github, under his name though. | 03:16 |
| ← simplechat left | 03:17 |
| → simplechat joined | 03:17 |
| ← metcalfc left | 03:17 |
| ← mjessome left | 03:17 |
| → dotnull joined | 03:17 |
|
bremner
| I still see what the problem is. If you have settings to be shared between users, put them in the system config. If not, put them in the users home directory. | 03:18 |
|
| s/see/don't see/ | 03:18 |
| ← Guest85118 left | 03:18 |
|
riyonuk
| Yea, that would work. | 03:20 |
| ← milk left | 03:22 |
| → milk joined | 03:22 |
| → dys` joined | 03:24 |
| → ObseLeTe joined | 03:24 |
| → koo4 joined | 03:25 |
| ← kerrick left | 03:26 |
| ← dys left | 03:26 |
| → elisa87 joined | 03:26 |
| ← mloskot left | 03:29 |
| ← fayimora left | 03:30 |
| → truc joined | 03:31 |
| ← ObseLeTe left | 03:31 |
| ← truc left | 03:31 |
| → fayimora joined | 03:31 |
| → curtp joined | 03:32 |
| ← elisa87 left | 03:32 |
|
curtp
| my master (remote) branch is stuck on a commit. I can see the changes in the remote branch, but I can't figure out how to pull it local. Any pointers? | 03:32 |
| → apok joined | 03:33 |
|
curtp
| it is on an old commit from what I can tell. there are a few more commits that came in after it, and I'd like to be on the most recent commit | 03:33 |
| ← detaer left | 03:34 |
| ← curtp left | 03:35 |
| ← Sigma left | 03:36 |
| ← boombatower left | 03:37 |
| → truc12 joined | 03:37 |
| ← hyperair left | 03:38 |
| → keller joined | 03:39 |
| ← milk left | 03:39 |
| → milk joined | 03:40 |
| ← milk left | 03:40 |
| ← disappea_ left | 03:41 |
| → milk joined | 03:42 |
| ← flaguy48 left | 03:48 |
| → dr0id joined | 03:50 |
| ← orafu left | 03:53 |
| → orafu joined | 03:53 |
| → angelsl joined | 04:00 |
|
xiong
| I have this idea, which I admit is quite vague. I'd like to know if anything in the git community reflects it. It has to do with multiple related branches that remain in defined relationships to one another. | 04:05 |
| ← dorkmafia left | 04:05 |
| ← riyonuk left | 04:06 |
|
xiong
| For example, on one branch there might be a set of files in foo/; and in a second branch, the same files in bar/baz/. I'd like to say that when any such file is changed on either branch, switching to the other branch will immediately find the change made in the right place. | 04:07 |
| → tshauck joined | 04:07 |
| ← truc12 left | 04:08 |
| → dirkle joined | 04:08 |
| → tellone joined | 04:09 |
| → gitnewbie joined | 04:16 |
| ← tellone left | 04:16 |
| gitinfo set mode: +v | 04:17 |
|
gitnewbie
| My remote master branch seems to be stuck on an old commit. When I try to pull the latest commit pushed by someone else, it isn't pulled down. git status shows the diff and I can see their changes, but for some reason when I pull i get the "already up to date" message. | 04:17 |
| → beautifulmind joined | 04:17 |
|
gitnewbie
| how can move the master branch to point to the most recent commit? | 04:18 |
|
SethRobertson
| gitnewbie: Do you want to save anything which you have done? | 04:18 |
|
gitnewbie
| I don't have any local changes | 04:19 |
|
| if that is what you mean | 04:19 |
|
SethRobertson
| If you are quite sure of that, `git checkout master; git reset --hard @{u}` will zap the master branch and have it point to what your upstream is pointing to | 04:19 |
| ← Samual left | 04:21 |
|
gitnewbie
| SethRobertson: I tried your command and got the same "already up-to-date" message. | 04:21 |
|
SethRobertson
| There were two commands | 04:21 |
| ← mxweas left | 04:22 |
|
SethRobertson
| Neither should have produced that message | 04:22 |
|
| Did you run a third command? | 04:22 |
|
gitnewbie
| the git reset --hard command is what caused it | 04:22 |
|
| git pull | 04:22 |
|
| sorry... that is the one that produced the message | 04:22 |
|
SethRobertson
| You should be up to date at this point, yes. What makes you think you are not? | 04:22 |
|
gitnewbie
| I looked for the change, but it isn't there. | 04:22 |
|
| Oh.... when I do a git status, it shows me a diff that displays the changed file | 04:23 |
|
| sorry..... git show | 04:23 |
|
SethRobertson
| git show what? | 04:23 |
|
| no arguments? | 04:24 |
| tizzo-afk → tizzo | 04:24 |
|
gitnewbie
| correct, no arguments | 04:24 |
| ← tshauck left | 04:24 |
| ← dreiss left | 04:24 |
| → tellone joined | 04:24 |
|
gitnewbie
| the diff shows the commit sha that was displayed when I did the reset --hard. then it goes into a diff display that shows the new code that is out there | 04:25 |
| → gavin_huang joined | 04:25 |
|
gitnewbie
| I had the person who did the new commit send me the output of 'git reflog' and it shows a different commit sha as the first entry | 04:26 |
|
SethRobertson
| If `git show` with no arguments show the diff, the diff is in your repository | 04:29 |
|
gitnewbie
| my local repository or the remote repository? | 04:30 |
|
SethRobertson
| local | 04:30 |
| → eletuchy joined | 04:30 |
|
SethRobertson
| The same repo which run `git show` has the commit | 04:30 |
|
gitnewbie
| ok.... checking again | 04:32 |
| ← tellone left | 04:34 |
|
gitnewbie
| SethRobertson: you're right... it is there! Thanks for helping me out | 04:34 |
|
SethRobertson
| sure | 04:35 |
|
gitnewbie
| so.... can you give me a quick explanation of the git reset --hard @{u} command? | 04:35 |
|
| or, is there a link I can go read up on it? | 04:35 |
|
SethRobertson
| `man git-reset` @{u} is the shortcut for the remote tracking branch for your upstream | 04:37 |
|
gitinfo
| the git-reset manpage is available at http://jk.gs/git-reset.html | 04:37 |
|
gitnewbie
| thanks | 04:37 |
| ← gitnewbie left | 04:39 |
| ← nardev left | 04:40 |
| → Moult joined | 04:43 |
|
Moult
| i've read here and there that gitosis is deprecated in favour or gitolite. i thought i'd better pop in here and check. is this true? anything else i should know? | 04:44 |
| ← neurodrone left | 04:45 |
| → alexim joined | 04:45 |
|
SethRobertson
| !gitosis | 04:47 |
|
gitinfo
| gitosis is no longer maintained and supported by the author; we usually recommend gitolite instead which has much better documentation and more features: http://github.com/sitaramc/gitolite | 04:47 |
|
SethRobertson
| Other things you should know? Plenty. Perhaps generically read !best_practices | 04:47 |
|
gitinfo
| There is no one right answer for git best practices, but a consensus from #git is available at https://gist.github.com/1540906 | 04:47 |
| ← unreal left | 04:48 |
| ← berserkr left | 04:49 |
| → amigojapan joined | 04:51 |
| → amigojapan_ joined | 04:52 |
|
Moult
| SethRobertson: thanks. that's a very nice document as well for best practices :) | 04:52 |
| → nardev joined | 04:52 |
| → disappea_ joined | 04:53 |
| → wilmoore joined | 04:54 |
| → nadavoid joined | 04:57 |
| → Samual joined | 05:02 |
| ← dotnull left | 05:02 |
| ← lonewulf` left | 05:10 |
| ← beautifulmind left | 05:11 |
| ← guampa left | 05:11 |
| ← cilly left | 05:11 |
| ← edude03 left | 05:12 |
| ← nadavoid left | 05:12 |
| ← uu left | 05:13 |
| → cilly joined | 05:13 |
| → lonewulf` joined | 05:14 |
| → Chib joined | 05:14 |
| → unreal joined | 05:16 |
| ← jwmann left | 05:17 |
| → dreiss joined | 05:18 |
| ← binjured left | 05:21 |
| ← muhoo left | 05:26 |
| ← alexim left | 05:26 |
| ← Orbitrix left | 05:27 |
|
tgunr
| I'm having a little trouble with an ignore pattern. I have several paths like "( Xcode Projects )/MartenEngineLibFFI/( Tester )/( build )/" that i would like to ignore if "( build )" is in the path. I have tried several variations of `*/\(\ build\ \)' but can't cant to get it to work. | 05:28 |
| → Orbitrix joined | 05:29 |
|
kevlarman
| tgunr: no need to escape (), but you do need to quote it if it has spaces | 05:31 |
|
tgunr
| backslash? | 05:32 |
| ← agile left | 05:32 |
|
kevlarman
| no, quote | 05:33 |
| ← dcarper1 left | 05:34 |
| → Platehead joined | 05:34 |
|
kevlarman
| actually \ might work too | 05:34 |
| ← BonQuisha left | 05:34 |
| ← Platehead left | 05:34 |
|
tgunr
| \ doesn't work | 05:34 |
| → BonQuisha joined | 05:34 |
|
kevlarman
| more likely your * doesn't work | 05:35 |
|
| if you want to ignore all folders named "( build )", that should be your pattern | 05:36 |
|
| or better yet, get rid of the horrible names | 05:36 |
| → linusoleander joined | 05:36 |
|
tgunr
| can't change the names unfortunately | 05:36 |
| → Fandekasp joined | 05:37 |
| → secoif joined | 05:37 |
| ← secoif left | 05:37 |
|
tgunr
| duh, that worked, was trying too hard, thanks kevlarman | 05:38 |
| → secoif joined | 05:38 |
|
tgunr
| BTW< kevlar is one of my favorite materials, saved my butt once :) | 05:39 |
|
kevlarman
| normally i'd say rtfm | 05:39 |
|
| but this particular one is a bit convoluted | 05:39 |
| ← dorisabayon left | 05:40 |
|
tgunr
| yeah, i hate his naming conventions | 05:40 |
| → nadavoid joined | 05:42 |
| → bobdobbs joined | 05:43 |
|
tgunr
| I was thrown off by this also "A pattern containing shell globbing characters, such as an asterisk (*), is expanded as a shell glob pattern." presumed the need for leading * | 05:44 |
|
bobdobbs
| I've got a dir with a bunch of subdirs in it. All the subdirs contain cloned git projects. Mostly javascript libraries and extensions and whatnot | 05:44 |
|
| Whats the most economical way to update all of them. | 05:45 |
|
| Instead of, say, entering each dir one by one and issueing 'git pull'. | 05:45 |
|
tgunr
| might take a look at gitslave or gitsubtree | 05:46 |
|
bobdobbs
| cool. will check them out. | 05:46 |
|
| thanks | 05:46 |
| ← eletuchy left | 05:46 |
| → eletuchy joined | 05:47 |
| ← nadavoid left | 05:47 |
| ← eletuchy left | 05:53 |
|
shuffle2
| why does git sometimes automatically create a merge commit when i'm on master and `git pull`, even if i have no changes? | 05:55 |
|
CareBear\
| shuffle2 : your master has nothing to do with origin/master | 05:57 |
|
| shuffle2 : being on master is not magical in any way | 05:57 |
|
| shuffle2 : master is just like any other local branch | 05:57 |
|
kevlarman
| shuffle2: you probably do have changes | 05:58 |
|
shuffle2
| no there are no changes | 05:58 |
|
CareBear\
| shuffle2 : and a merge commit is created when your master can not be fast-forwarded to fetched commits | 05:58 |
|
kevlarman
| shuffle2: if you haven't done anything since that pull, it's pretty easy to figure out what they were | 05:58 |
|
CareBear\
| look at the commit graphs and individual commits | 05:58 |
|
kevlarman
| ^or that | 05:59 |
|
shuffle2
| i mean i can do git pull...<time passes, people commit to origin/master>...i pull again, and a merge commit is generated | 05:59 |
| ← JustMozzy left | 05:59 |
|
shuffle2
| no local changes | 05:59 |
|
Goplat
| shuffle2: probably your own "master" branch has committed changes that aren't on the remote and thus aren't in remote/origin/master | 05:59 |
|
CareBear\
| now you're speculating | 05:59 |
|
| look at what you have | 06:00 |
|
shuffle2
| lol | 06:00 |
|
CareBear\
| the actual commits you have, that is | 06:00 |
|
shuffle2
| Goplat: no | 06:00 |
|
CareBear\
| pastebin git log --graph | 06:00 |
|
shuffle2
| i've already reset to HEAD~1 to fix it | 06:00 |
|
CareBear\
| look in git reflog | 06:01 |
|
| and run git log --graph on the merge commit | 06:01 |
|
shuffle2
| http://pastie.org/private/18ego2u4v26lnypcppdi1w | 06:02 |
|
| the git reflog says | 06:03 |
|
| ded1263 HEAD@{3}: pull : Merge made by recursive. | 06:03 |
|
| git show ded126345449b83133a048e340331279e5578992 lists no files | 06:04 |
|
CareBear\
| are you running windows by any chance? | 06:05 |
| → edude03 joined | 06:05 |
|
shuffle2
| yes, i have core.autocrlf=true globally | 06:05 |
|
CareBear\
| that could play in | 06:05 |
|
shuffle2
| i have a hunch that it's because people do things like this sometimes: http://code.google.com/p/dolphin-emu/source/detail?r=f9f9bb98700492f78558afa195f8be511c73f636 | 06:05 |
|
kevlarman
| shuffle2: autocrlf=true is really dangerous | 06:06 |
|
shuffle2
| uh huh | 06:06 |
|
| i don't think it's related to this | 06:06 |
|
kevlarman
| shuffle2: you would probably notice in your diffs if it was | 06:06 |
|
| shuffle2: but i'd still avoid it | 06:06 |
|
shuffle2
| i think it's because people sometimes merge the wrong way somehow (like i just linked) | 06:07 |
|
CareBear\
| "I tried to rebase but it didn't work" | 06:07 |
|
shuffle2
| they merge master into feature branch, and then make the resulting branch master | 06:07 |
|
CareBear\
| ok | 06:07 |
|
| so they rewrite master | 06:07 |
|
shuffle2
| honestly dunno how they do it :P | 06:07 |
|
CareBear\
| that is equivalent to you having local changes | 06:07 |
|
| => you can not fast-forward | 06:08 |
|
shuffle2
| would that be allowed to be pushed without -f? | 06:08 |
|
CareBear\
| *shrug* | 06:08 |
|
shuffle2
| i need some type of punishment for that behavior :p | 06:08 |
|
CareBear\
| better to not let it into the repository in the first place | 06:08 |
|
shuffle2
| moderating gcode-hosted projects isn't very nice | 06:09 |
| → rathma joined | 06:09 |
|
CareBear\
| well, have fun with that :9 | 06:09 |
|
shuffle2
| i mean, it's hard to do afaik | 06:09 |
|
CareBear\
| I would never host at google | 06:09 |
|
| so you're talking to the wrong person | 06:10 |
|
| but maybe they can provide a Gerrit for you | 06:10 |
|
| (for everyone) | 06:10 |
| ← btanaka left | 06:10 |
| → Goplat` joined | 06:11 |
| ← Goplat left | 06:11 |
|
shuffle2
| wow gerrit sounds magical | 06:12 |
| ← dzonder left | 06:12 |
| ← avium left | 06:12 |
| ← _W_ left | 06:13 |
| ← nardev left | 06:13 |
| ← rurufufuss left | 06:13 |
| ← Gitzilla left | 06:13 |
| ← heinrich5991 left | 06:13 |
| → jweinberg joined | 06:13 |
| → didlix joined | 06:13 |
| → baburdick joined | 06:14 |
| → spacebat joined | 06:14 |
| ← Marquel left | 06:18 |
| ← jayne left | 06:19 |
| → heinrich5991 joined | 06:19 |
| ← koo4 left | 06:20 |
| → koo4 joined | 06:20 |
| ← _Vi left | 06:24 |
| → Gitzilla joined | 06:25 |
| → GutenTag joined | 06:26 |
| → nardev joined | 06:26 |
| → _W_ joined | 06:26 |
| ← amigojapan_ left | 06:26 |
| → rurufufuss joined | 06:26 |
|
GutenTag
| I just did a 'git add .' -- and there are about 18K files -- should I expect this to take a very long time? I've been waiting about 5 minutes for the operation to complete and it's still going. I'm under cygwin and on an 'older' computer. | 06:27 |
|
CareBear\
| yes, it will take time | 06:29 |
|
| GutenTag : especially if they are binary files | 06:29 |
|
SethRobertson
| Or larger than free memory | 06:30 |
|
CareBear\
| or you are on windows | 06:30 |
|
| or your hardware is old | 06:30 |
|
| oh wait, you already said .. :p | 06:30 |
|
GutenTag
| LoL | 06:30 |
|
| Ok, I'll be patient then. :) | 06:30 |
|
| what is git doing when it add's a file? | 06:31 |
| ← _W_ left | 06:31 |
|
SethRobertson
| checksums, compressing, copying | 06:31 |
|
GutenTag
| Ah. | 06:32 |
|
| Oh, will "copies" of the files end up in the .git directory? | 06:32 |
|
CareBear\
| yes | 06:32 |
|
GutenTag
| Aha. OK -- makes sense. Thanks. | 06:32 |
| ← Carmivore left | 06:33 |
| → Carmivore joined | 06:34 |
| → _W_ joined | 06:34 |
| ← brokenshakles left | 06:34 |
|
GutenTag
| So, my program is dependent on a bunch of external libraries (these 18K plus files, including their .jar files, documentation, etc..). I'm creating a separate repository for them to share with other team members from our actual source code. Is this good/common practice? | 06:34 |
|
CareBear\
| no | 06:35 |
|
| :) | 06:35 |
|
| well, common I don't know | 06:35 |
|
| but git isn't so good at that | 06:35 |
| → _Vi joined | 06:35 |
|
CareBear\
| IMO you should only have your own code in your repo | 06:35 |
|
| and manage dependencies with a package manager | 06:36 |
|
| except Java doesn't have one :( | 06:36 |
|
GutenTag
| So, that's why I at least created a SEPARATE repo -- does that make the most sense? | 06:36 |
| → AmirBehzad joined | 06:37 |
|
SethRobertson
| GutenTag: That is pretty common. git-submodule or gitslave is often used for that. If it is your repo, then gitslave is less annoying, if non-standard | 06:37 |
| ← joshsmith left | 06:37 |
| → brokenshakles joined | 06:38 |
|
SethRobertson
| You might want to split it up even further to prevent massive repos | 06:38 |
|
| Another option is to use git-annex for those large binary files | 06:39 |
|
GutenTag
| SethRobertson: Thanks. I'm not familar with either; I'll google. Oh crap, it's worse than I thought, too. My lib directory is about 450M and about 28K files. Does that constitute a massive repo? | 06:40 |
| ← dreiss left | 06:40 |
|
GutenTag
| We are using bitbucket at the moment, if that matters. | 06:40 |
|
SethRobertson
| I have a 1.7G one which I am not proud of | 06:40 |
|
| I had to put special config options in to make it work | 06:41 |
|
| quickly | 06:41 |
|
CareBear\
| GutenTag : binary megabytes are bad | 06:41 |
|
| :) | 06:41 |
| → caseymcg joined | 06:42 |
| ← _Vi left | 06:42 |
|
GutenTag
| Should we not use git at all then to share our libraries? It still seems like one of the best options. | 06:42 |
|
CareBear\
| I think something else would be better | 06:43 |
|
GutenTag
| my add . finally finished, now my commit is taking it's time. Can't wait to push. :) | 06:43 |
|
SethRobertson
| It is a tough issue. It is there and convenient, but not really designed for the purpose | 06:43 |
|
GutenTag
| I see. | 06:43 |
|
CareBear\
| except it really isn't convenient | 06:43 |
|
| with so much/binary data | 06:43 |
| → _Vi joined | 06:43 |
|
GutenTag
| It seems like it should be convenient enough, once every gets their initial copies. I don't /think/ it will grow that fast. (Of course, those are probably 'famous last words') | 06:44 |
| → bindaasomatic joined | 06:44 |
| rphillips → Guest66160 | 06:45 |
|
CareBear\
| I would use a real package manager | 06:45 |
|
GutenTag
| I'm pushing now. I'll see how long it takes to push. | 06:45 |
|
CareBear\
| du -s .git | 06:45 |
|
| maybe -hs | 06:46 |
|
GutenTag
| CareBear\: Ok, I don't know about package manager, but it sounds like something I should look into, regardless, to make an informed decision. | 06:46 |
|
| It said it had 14509 objects when I sent my push command. | 06:46 |
|
| Do you have a recommendation for (Java) package managers? I'm not sure where to start. | 06:46 |
|
CareBear\
| oh you're on windows yeah, no, no package manager in sight there | 06:46 |
|
| the only instance so far I've seen it done halfway sanely is Gentoo Linux | 06:47 |
|
| but unfortunately the world of java developers insist on shipping all dependencies in every package | 06:47 |
|
| so the opposite of the scenario with a successful package manager | 06:48 |
| ← _Vi left | 06:48 |
|
CareBear\
| ..of course because there exist no useful deployment tools (package managers) for java | 06:48 |
|
| small glitch in the portability | 06:48 |
|
| sorry | 06:48 |
|
| I really think java sucks in so many ways :p | 06:48 |
|
| I will try to shut up now | 06:48 |
| ← adamm left | 06:50 |
| → dreiss joined | 06:51 |
| ← apok left | 06:52 |
| ← Goplat` left | 06:53 |
| → avium joined | 06:53 |
| Guest66160 → rphillips | 07:00 |
| → macRover joined | 07:00 |
| → Blaster joined | 07:02 |
|
Blaster
| Hey, I just deleted a whole directory from my working folder, and now when I type 'git status' a whole ton of deletions show up. Normally I'd type git rm <path> to delete those files from the repo, but since theres hundreds of deletions, is there a command I can execute to delete the whole directory from the index? | 07:03 |
|
CareBear\
| git rm -r ? | 07:03 |
| → arvind_khadri joined | 07:04 |
|
Blaster
| perfect thanks | 07:04 |
| ← CollinPDX left | 07:04 |
| → jayne joined | 07:06 |
| → _Vi joined | 07:09 |
| → Spockz` joined | 07:10 |
| ← fermianyon left | 07:12 |
| → CollinPDX joined | 07:12 |
|
Blaster
| I have a bunch of files whos names went funny inside Git... They are now like %%E6^E66^E6665588%%results_detail_map.tpl.php | 07:15 |
|
| anyone know why? | 07:15 |
| ← amigojapan left | 07:15 |
| → mdel joined | 07:16 |
| ← Fandekasp left | 07:18 |
| ← drev1 left | 07:22 |
| → Marquel joined | 07:22 |
| → ipalaus_ joined | 07:25 |
| ← koo4 left | 07:28 |
| → OOPMan joined | 07:29 |
| → delight joined | 07:29 |
| → ObseLeTe joined | 07:32 |
| ← Vortex35 left | 07:32 |
| → Vortex34 joined | 07:33 |
|
Moult
| possible to ask for gitweb help in here? | 07:34 |
| ← caseymcg left | 07:34 |
| ← brokenshakles left | 07:35 |
| → caseymcg joined | 07:35 |
| ← dhruvasagar left | 07:36 |
| ← diegoviola left | 07:39 |
| → fairuz_ joined | 07:40 |
| ← [RHQme]stringo0 left | 07:41 |
| → ThomasLocke joined | 07:46 |
| ← madewokherd left | 07:46 |
| → __iron joined | 07:46 |
| → ASIRINeiluj joined | 07:47 |
| → umren joined | 07:47 |
| → marthinal joined | 07:48 |
| → brokenshakles joined | 07:50 |
| ← _iron left | 07:50 |
| ← surfdue left | 07:51 |
| → surfdue joined | 07:52 |
| ← thebignoise left | 07:52 |
| ← dreiss left | 07:52 |
| ← OOPMan left | 07:54 |
| ← ObseLeTe left | 07:57 |
| → ripero joined | 08:00 |
| → koo4 joined | 08:02 |
| ← jason237 left | 08:02 |
| ← Chillance left | 08:03 |
|
ripero
| I'm having troubles with the setup of mirroring through gitolite, is anybody familiar with it? | 08:04 |
| → break57382 joined | 08:05 |
| → Dave^| joined | 08:06 |
| → bemson joined | 08:07 |
|
bemson
| anyone know how to point to another repo in github? I see folders with green arrows in the file browser, and I'd like to do that instead of copying all the files into my repo | 08:07 |
|
sitaram
| ripero: !doesntwork | 08:07 |
|
gitinfo
| ripero: What happened? Did it fall asleep on your couch? Eat your homework? Destroy your hard drive? Is it making faces at you? Does it want more money? Is it sleeping with your best friend? Please be specific! | 08:07 |
| → psakrii joined | 08:07 |
| ← bemson left | 08:11 |
| ← brokenshakles left | 08:11 |
| → giallu joined | 08:11 |
| → Prasad joined | 08:12 |
| ← delight left | 08:13 |
| ← igotnolegs left | 08:14 |
| ← caseymcg left | 08:17 |
| ← lonewulf` left | 08:18 |
|
fayimora
| hey gys i just pushed something to my git repo but i wanna add more files to that commit..how do i do it? | 08:20 |
| ← giallu left | 08:20 |
| tizzo → tizzo-afk | 08:20 |
|
sitaram
| fayimora: are you the only person using the repo you pushed to? if there's *any* chance someone else may have pulled your last commit, this might not be a good idea | 08:21 |
|
fayimora
| no its just me | 08:21 |
|
| none is using it | 08:21 |
| → toabctl joined | 08:22 |
|
fayimora
| how do you merge 2 commits into one? | 08:22 |
|
sitaram
| ok then 'git add new files; git commit --amend; git push -f' | 08:22 |
| ← psakrii left | 08:22 |
|
fayimora
| cause i think i actually pushed to batches and it was supposed to be one | 08:22 |
|
| *2 not to | 08:22 |
| → delight joined | 08:23 |
|
sitaram
| merging two commits into one: 'git rebase -i HEAD~3' then in the editor change the second 'pick' to 'squash' and save the file | 08:23 |
|
ripero
| sitaram: are "server keys" just regular keys (generated through ssh-keygen) available to the the gitolite user? imho, the manual is very clear about how to add the keys from other servers, but not on the meaning of "server keys" ( http://sitaramc.github.com/gitolite/mirrsetup.html ) | 08:23 |
|
sitaram
| then in the *next* editor window that comes up edit the combined commit message how you like | 08:23 |
|
| and save | 08:23 |
|
| fayimora: ^ all that was for you | 08:23 |
|
fayimora
| sitaram: yeah.. when i ran the command, i got my last 5 commits | 08:24 |
|
sitaram
| ripero: they're not different from ssh angle; they're different in terms of how they get added to the authkeys file | 08:25 |
|
fayimora
| they all have pick, do i just change the last one to squash? | 08:25 |
|
sitaram
| ripero: the normal user keys get added with a 'command=' of /path/to/gl-auth-command | 08:25 |
|
| fayimora: wait | 08:25 |
|
fayimora
| i have this -> pick 03cf60d Rename PostController to PostsController | 08:25 |
|
| 2 pick 98be1f5 Use RESTful routing | 08:25 |
|
| 3 pick 4d2af5e Fix resourceful behaviour of PostsController and associa ted views | 08:25 |
|
| 4 pick 31399c7 added comment functionality | 08:25 |
|
| 5 pick b3b46fb added comment functionality | 08:25 |
|
sitaram
| ripero: the server keys have a command= of /path/to/gl-mirror-shell | 08:26 |
|
fayimora
| sorry for the multiple post..nnot my doing.. i want to merge the last 2 on that list | 08:26 |
|
sitaram
| fayimora: please use a pastebin for anything more than 2-3 lines | 08:26 |
| ← Moult left | 08:26 |
|
sitaram
| fayimora: and I did say "wait"; not "paste" ;-) | 08:26 |
|
fayimora
| sorry bout that | 08:26 |
|
sitaram
| fayimora: np; my message crossed yours :-) | 08:27 |
|
fayimora
| so should i still wait? | 08:27 |
| → rendar joined | 08:27 |
|
sitaram
| fayimora: not sure how you got last 5 if you did 'rebase -i HEAD~3'. please delete all the lines in the editor -- every single line -- then *save* and exit first | 08:27 |
|
| fayimora: then try again with HEAD~2 instead of HEAD~3 (my mistake on that) | 08:28 |
|
fayimora
| yaay i got the last 2 now..so i change the last one to squash right? | 08:29 |
|
sitaram
| yes | 08:29 |
| → ripero1 joined | 08:30 |
| ← ripero left | 08:30 |
|
sitaram
| then save it. You will get a new edit window that contains the combined commit message; edit that how you like and save that too. You're done. | 08:30 |
|
| fayimora: note that this is a long winded way of squashing top two commits but more generic and preserves both commit messages for editing. | 08:31 |
|
fayimora
| sitaram: cool…thanks a lot | 08:31 |
| → uu joined | 08:31 |
| → whitman joined | 08:31 |
| gitinfo set mode: +v | 08:32 |
|
ripero1
| sorry, I got disconnected at 09:26:23, is there a log of the room somewhere? | 08:32 |
|
sitaram
| /topic | 08:32 |
|
| hmm sorry; wait | 08:33 |
|
| http://tinyurl.com/gitlog seems to work but is not in the /topic; no idea why | 08:33 |
|
ripero1
| sitaram: thx | 08:34 |
|
| sitaram: the difference in the authorized_keys is clear | 08:34 |
| → Fandekasp joined | 08:35 |
| → khmarbaise_ joined | 08:35 |
| ← khmarbaise left | 08:35 |
| khmarbaise_ → khmarbaise | 08:35 |
|
ripero1
| sitaram: my point was that it's not that clear that where you have to put the private key | 08:35 |
|
sitaram
| guess? | 08:36 |
|
| I'll be back in 10 min | 08:37 |
|
ripero1
| ~gitoliteuser/.ssh/ | 08:37 |
| → dorisabayon joined | 08:40 |
| → elena1986 joined | 08:40 |
| ← Fandekasp left | 08:40 |
| → ObseLeTe joined | 08:41 |
| ← lausi left | 08:42 |
| → lausi joined | 08:43 |
| ← slide left | 08:43 |
|
sitaram
| yup; assuming that's your gitolite *server* userid | 08:45 |
| → ph^ joined | 08:45 |
|
sitaram
| (typically 'git' or perhaps 'gitolite' if you used an RPM or DEB install, but could be anything really) | 08:45 |
|
| ripero1: ^ | 08:46 |
| ← yshh left | 08:46 |
| ← [M]ax left | 08:46 |
|
ripero1
| sitaram: yep | 08:47 |
| → pidus joined | 08:48 |
| → guns joined | 08:48 |
| ← arvind_khadri left | 08:49 |
|
ripero1
| sitaram: just that "ssh" + "server" has a tendency to make one think in /etc/ssh (at least that was my first thought, which I of course discarded) | 08:49 |
| → [M]ax joined | 08:49 |
|
ripero1
| sitaram: I would kindly suggest adding a few words to the manual explanation, in the like of "Generate ssh keys on each machine + for the gitolite server user" | 08:51 |
| → kevwil joined | 08:51 |
|
ripero1
| sitaram: and thank you very much for your help | 08:52 |
|
sitaram
| you're welcome! | 08:53 |
| → OOPMan joined | 08:53 |
| ← delight left | 08:54 |
|
sitaram
| I used to jump at every complaint and change my docs, till I realised that everyone has a different perspective and English != perl | 08:54 |
|
| not precise enough | 08:54 |
|
| so now I will wait for more than one complaint before changing something ;-) | 08:54 |
|
ripero1
| sitaram: ok :) | 08:54 |
|
sitaram
| since I'm here a lot of the time and on email, it should not be an issue | 08:55 |
| ← ObseLeTe left | 08:55 |
| ← macRover left | 08:55 |
|
ripero1
| sitaram: that's really helpful, indeed | 08:55 |
|
IcePic
| ripero1: I can somewhat see sitarams point here also, gitolite is simply riding on top of ssh, so teaching ssh in all its gory details may not be optimal in those docs either. Getting some familiarity with ssh itself may sometimes be in order. | 08:56 |
| → ManDay joined | 08:56 |
|
sitaram
| well, one of the reasons I wrote gitolite was because the author of gitosis would not even reply to emails. I have *no* intention of becoming like that :) | 08:56 |
|
ManDay
| I'd like to find all objects which correspond to files '*.xyz', how would I do that? | 08:56 |
|
IcePic
| find . -name "*.xyz" ? | 08:56 |
| ← rendar left | 08:57 |
|
ManDay
| Uhm, aren't objects stored as hashes? | 08:57 |
| → rendar joined | 08:58 |
| ← koo4 left | 08:59 |
| ← wilmoore left | 08:59 |
|
ripero1
| sitaram: besides, you do know that gl-tool in Debian installs is only available through /usr/share/gitolite/gl-tool (not in any exec default path), don't you? | 08:59 |
|
sitaram
| ManDay: it's complex; you'll have to look at *every* leaf commit (commit not reachable from elsewhere) and run 'git log -- filename' on it with some format options to print the SHA, then from those SHAs you have to "git ls-tree" | 08:59 |
|
| ripero1: sorry, I'm not really familiar with Debian | 09:00 |
| → wilmoore joined | 09:00 |
|
ManDay
| sitaram: Are you sure of that? Shouldn't there be some plumbing command that makes it easier? | 09:01 |
| ← EyesIsServer left | 09:02 |
|
sitaram
| ManDay: maybe; it's the wrong time of day for most of the real experts so you get me :) | 09:02 |
| ← OOPMan left | 09:02 |
|
ManDay
| Haha ;D | 09:02 |
|
| Thank you sitaram :) | 09:03 |
| → koo4 joined | 09:04 |
|
sitaram
| np | 09:04 |
| → drizzd joined | 09:06 |
|
ripero1
| sitaram: not that it's not a right place for the script, just wanted to point out that gl-setup is easily availabre from shell, but gl-tool will easily return a "command-not-found" error | 09:06 |
| → EyesIsServer joined | 09:07 |
|
sitaram
| ripero1: it's *not* the right place for the script if you ask me | 09:08 |
| → lonewulf` joined | 09:08 |
|
sitaram
| ManDay: what's the reason you need this? (Could be an X-Y problem you know...) | 09:10 |
| → glcrazy joined | 09:11 |
|
ripero1
| sitaram: I am not really familiar with right places and Debian packaging, probably rhonda (the Debian maintainer) can help | 09:11 |
|
tango_
| ManDay: the hashes of the objects are the hashes of the content, and they are not really associated with any particular file _name_ | 09:12 |
|
| ManDay: so the only way to get which objects have had a given filename in their history is by ls-treeing all possible trees | 09:12 |
|
sitaram
| ManDay: for example, if you were wanting to *remove* a sensitive file from the repo, and that is why you're asking, there are other answers... (git filter-branch) | 09:13 |
| ← kevwil left | 09:17 |
| ← LongBeach left | 09:18 |
|
ManDay
| tango_: sitaram: Thanks, yes, I know filter-branch. I was rather curious about listing them. My problem is that I did not properly .gitignore some files and I wonder where and when they were involved. | 09:21 |
| ← lapistano left | 09:23 |
| → lapistano joined | 09:23 |
|
sitaram
| ManDay: should be sufficient to find them in all visible refs then; no need to go digging in reflog, lost-and-found, etc. | 09:24 |
| → whyking joined | 09:26 |
| → FernandoBasso joined | 09:26 |
| ← break57382 left | 09:26 |
| ← Prasad left | 09:30 |
| → sattu94 joined | 09:32 |
| ← Silowyi left | 09:33 |
|
sitaram
| ManDay: hah! | 09:33 |
|
| got it | 09:33 |
| → cli joined | 09:35 |
|
sitaram
| git log --raw --abbrev=40 --format=%n --all -- path/to/file | egrep -o '[a-f0-9]{40}' | sort -u | 09:37 |
| ← cli left | 09:37 |
| ← ripero1 left | 09:38 |
| → __cli joined | 09:39 |
| → stodan joined | 09:39 |
|
ManDay
| sitaram: I think this only tracks the history of a file. | 09:40 |
|
| It doesn't allow globbing all files of ending *.xyz in the history | 09:40 |
|
sitaram
| ManDay: oh I forgot you wanted a glob | 09:40 |
|
| hmm | 09:40 |
| ← Chib left | 09:40 |
|
sitaram
| seems to work if you put the glob in quotes | 09:41 |
| ← _Vi left | 09:42 |
|
ManDay
| Well yeah, if those files are in the current working tree | 09:44 |
|
| but lets say there HAD been a file called a.xzy which I deleted 10 commits ago | 09:45 |
| ← khmarbaise left | 09:45 |
| → aruetten joined | 09:45 |
| ← glcrazy left | 09:45 |
| ← aruetten left | 09:45 |
|
sitaram
| I dont think it needs to be in the work tree | 09:46 |
|
| nope; works fine | 09:46 |
|
ManDay
| nope | 09:47 |
|
| I'm 95% certain that there had been days when I had abx.xyz commited, but when I do what you said with '*.xyz' nothing comes up | 09:48 |
|
sitaram
| then it's not in any ref that's *reachable* now; maybe went into reflog or even beyond | 09:48 |
| → cccaldas joined | 09:49 |
|
ManDay
| What do you mean it went into reflog? | 09:49 |
|
sitaram
| see the "--all" in my command? that means all branches/tags/remote-refs right? | 09:50 |
|
ManDay
| Yes | 09:51 |
|
sitaram
| now do you know what 'git commit --amend' does? | 09:51 |
|
ManDay
| Yes | 09:52 |
|
sitaram
| right. Now what happens to the commit that *used* to be at HEAD? | 09:52 |
|
ManDay
| what? | 09:52 |
|
sitaram
| it's not reachable by "--all" anymore | 09:52 |
| → break57382 joined | 09:52 |
|
ManDay
| I thought it were discarded | 09:52 |
|
| Besides, what does that have to do with reflog? | 09:52 |
|
sitaram
| well yeah, but you can get it back. Limited offer, 30 days only | 09:53 |
|
| operators are standing by. Call now | 09:53 |
| → Sigma joined | 09:53 |
|
sitaram
| damn, wrong window ;-) | 09:53 |
|
ManDay
| Wait, whom am I calling? I WANT THAT LIMITED OFFER! | 09:54 |
|
sitaram
| 1-800-git-log-g :-) | 09:56 |
|
| jokes apart, "git log -g" shows you the reflog. See the last section of http://sitaramc.github.com/gcs/index.html for some details on reflog but it's ideal to read the whole thing to understand it | 09:56 |
|
| meanwhile, try this | 09:56 |
|
| the command I gave you? add "-g" right after the "log" | 09:56 |
|
| and see if your files show up | 09:56 |
| ← cilly left | 10:02 |
| → gusnan joined | 10:03 |
| → arvind_khadri joined | 10:03 |
| ← arvind_khadri left | 10:03 |
| → arvind_khadri joined | 10:03 |
| ← edude03 left | 10:04 |
|
ManDay
| My files? | 10:05 |
|
| Ok | 10:06 |
|
| Look | 10:06 |
|
| How does the reflog work? Apparently, it can't be derived from the trees, can it?! | 10:06 |
| ← gavin_huang left | 10:06 |
|
CareBear\
| it can not | 10:07 |
|
| it is a simple append only log of commits that are created | 10:07 |
|
sitaram
| ManDay: did they show up? those *.xyz files? | 10:07 |
|
ManDay
| CareBear\: So it's created and maintained separately of the rest of git? | 10:09 |
|
CareBear\
| yes | 10:10 |
|
ManDay
| sitaram: Show up where? | 10:10 |
|
| Thanks CareBear\ | 10:10 |
| ← elena1986 left | 10:10 |
| → unmanbearpig joined | 10:11 |
| ← __cli left | 10:11 |
| ← arvind_khadri left | 10:11 |
| ← cccaldas left | 10:11 |
| → sebrock joined | 10:11 |
|
sitaram
| in this command: git log -g --raw --abbrev=40 --format=%n --all -- "*.xyz" | 10:11 |
| → nixmaniack joined | 10:12 |
|
ManDay
| sitaram: No. | 10:12 |
|
sitaram
| then you dont have them in your repo | 10:12 |
| ← nixmaniack left | 10:14 |
| → arvind_khadri joined | 10:14 |
| ← arvind_khadri left | 10:14 |
| → arvind_khadri joined | 10:14 |
|
ManDay
| Hm, you are perhaps right... I just checked on of the commits where I thought I had them in, nothing there. | 10:15 |
|
| there are all sorts of 95% ... | 10:15 |
| → __cli joined | 10:15 |
| ← __cli left | 10:16 |
| → __cli joined | 10:17 |
|
ManDay
| No | 10:18 |
|
| Here, I found a commit in which is a file abc.xyz | 10:18 |
|
| sitaram. | 10:18 |
|
| I told you, that command does not account for files in history. It only shows the history of a file currently in the WD | 10:19 |
| → Bartzy joined | 10:20 |
|
sitaram
| ManDay: no. If yo u don't want to listen thats ok; but I have tested it with files *not* in the WD | 10:20 |
|
ManDay
| git log --raw -g --abbrev=40 --format=%n --all -- '*.cgns' | 10:23 |
|
| And I have tested it, too. | 10:23 |
|
| And for me it doesn't work. | 10:23 |
|
| But if you don't want to listen, that's ok. Let's just both not listen to eachother. | 10:23 |
| → flavius joined | 10:24 |
|
sitaram
| ManDay: complete transcript of a test; empty directory, from scratch: http://dpaste.org/P3amk/ | 10:24 |
|
ManDay
| That's most likely because you got commits dedicated to those files. | 10:25 |
|
| I can give you a log from me, too | 10:26 |
|
sitaram
| what do you mean "commits dedicated to those files"? | 10:26 |
|
| a commit in which only that file is committed? That doesnt make a difference to git | 10:27 |
| ← dvide left | 10:28 |
| → schnatta joined | 10:29 |
|
jameslord
| i need a mailinglist to post my question:( | 10:29 |
|
| give me one | 10:29 |
| ← disappea_ left | 10:30 |
| ← xerora left | 10:32 |
| → churp joined | 10:32 |
| ← guns left | 10:32 |
| → airborn joined | 10:32 |
| → disappea_ joined | 10:32 |
|
sitaram
| ManDay: in case that's what you meant, try this: http://dpaste.org/IbVLm/ | 10:33 |
|
ManDay
| sitaram: http://pastebin.com/TQAtNx0S | 10:33 |
|
sitaram
| temp copy of my gitolite repo, blow away everything, and see what the commands get you | 10:33 |
| ← Tommy[D] left | 10:33 |
|
ManDay
| try for yourself | 10:33 |
| → Akufen joined | 10:34 |
| → giallu joined | 10:35 |
| → Tommy[D] joined | 10:36 |
|
sitaram
| take out the --all if you use -g | 10:37 |
|
| they're not mutually compatible | 10:37 |
|
| I probably didn't say that clearly, sorry | 10:38 |
|
ManDay
| Still nothing. | 10:38 |
| → thebignoise joined | 10:38 |
|
sitaram
| I got the output | 10:38 |
|
| http://dpaste.org/n07kH/ | 10:39 |
| → krz joined | 10:39 |
|
ManDay
| goto onto origin/2d-base and try from there | 10:39 |
|
| git log --raw -g --abbrev=40 --format=%n -- '*.cgns' | 10:39 |
|
| gives me nothing on 2d-base | 10:39 |
| → tomislater joined | 10:40 |
|
sitaram
| view http://dpaste.org/7zhT6/raw/ | 10:40 |
|
| whats your git version? | 10:40 |
|
ManDay
| git version 1.7.3.4 | 10:41 |
|
sitaram
| ok... is this OSX or Windows? | 10:41 |
|
ManDay
| neither?! | 10:41 |
|
sitaram
| then I dont know. My git is much newer but I dont see this as being recent | 10:41 |
|
ManDay
| whats your v? | 10:41 |
|
sitaram
| 1.7.7.4 | 10:42 |
| → tewecske joined | 10:42 |
|
sitaram
| wait I have a much older one at work lemme log on and try | 10:42 |
|
| 1.7.4.4 damn... not *much* older | 10:42 |
|
ManDay
| Wait... 7.4 isn't "much older" than 7.7 but 7.3 is? | 10:43 |
|
| Logaritmic scale where needs be, eh | 10:43 |
|
| :P | 10:43 |
|
sitaram
| damn | 10:44 |
|
| it doesnt work on 1.7.4.4 | 10:44 |
|
ManDay
| Why "damn"? That's good | 10:44 |
|
| Now we know that it was a bug that must have been fixed. | 10:44 |
|
| At least that's a plasuible explanation | 10:44 |
|
sitaram
| ManDay: yeah true... /me tries to look for release notes | 10:45 |
|
ManDay
| Thank you sitaram :) | 10:46 |
|
sitaram
| found it -- 1.7.5 | 10:47 |
| ← arvind_khadri left | 10:47 |
| → shruggar joined | 10:47 |
|
ManDay
| saying? | 10:47 |
|
sitaram
| oh well. Sorry for being a little short. I did not think this was somehow "new" and thought I'd done it before, so until we *really* tested it, I never thought it could be a version difference | 10:47 |
|
| wait lemme paste | 10:48 |
| → jceb joined | 10:48 |
|
sitaram
| line 71 of http://dpaste.org/ZwUP5/ (1.7.5 relnotes) | 10:48 |
|
ManDay
| ah | 10:49 |
| ← ipalaus_ left | 10:50 |
| ← linusoleander left | 10:51 |
| → Boris` joined | 10:55 |
| ← Boris` left | 10:55 |
| → glcrazy joined | 10:55 |
|
jameslord
| i git clone from a remote repo, then made changes to it on pc A , but have not push it to serer yet, then i copy a local repo to another machine B, after that i push push the change to server on PC B, then i come back to pc a, it still in a not push stage, should i push for a second time? | 10:56 |
|
| but this will generate unnecessary log, and in fact push nothing to server | 10:57 |
|
| what should i do? | 10:57 |
|
cmn
| you don't need to do anything, the change is in the server already | 10:59 |
|
| do a fetch if you want to update the repo's idea of what's in the remtoe | 10:59 |
| → apok joined | 11:01 |
|
jameslord
| how to know if the local repo is the same as the remote repo? | 11:01 |
|
aro
| why is my commit to my repo hanging when i do 'git add .' | 11:02 |
| ← giallu left | 11:03 |
|
ManDay
| jameslord: by running git fetch | 11:04 |
|
jameslord
| git fetch will tell me if local repo is the same as remote repo | 11:04 |
|
| ? | 11:04 |
| → giallu joined | 11:05 |
|
ManDay
| ? | 11:05 |
|
cmn
| git fetch will update your repo's idea of what's in the remote | 11:05 |
|
aro
| i dunno whats going on, it just isnt doing anything | 11:05 |
|
cmn
| aro: are those files very large? | 11:05 |
|
ManDay
| cmn: Why would it matter? | 11:05 |
|
cmn
| jameslord: if you don't want to download the new commits, ls-remote will tell you the state of the branches on the remote | 11:06 |
|
| ManDay: IIRC git add is the one responsible for creating the blobs | 11:06 |
|
| and large files have never been git's forte | 11:06 |
|
| so if the file is large (esp. compared to the RAM), git add will take a long time | 11:07 |
|
jameslord
| there is no ls option when use git remote | 11:07 |
| → faber joined | 11:07 |
|
cmn
| ls-remote | 11:07 |
|
ManDay
| cmn: Does git add even care about the file's contents? | 11:07 |
| → cesc joined | 11:07 |
|
cmn
| yes | 11:07 |
|
| it needs to create the blob | 11:07 |
|
ManDay
| Ah, yes | 11:08 |
| ← churp left | 11:08 |
| ← FernandoBasso left | 11:11 |
| ← fayimora left | 11:14 |
| → fayimora joined | 11:14 |
|
jameslord
| hi | 11:15 |
| ← jameslord left | 11:15 |
| → jameslord joined | 11:15 |
| → iocor joined | 11:15 |
| → dangerousdave joined | 11:15 |
| ← glcrazy left | 11:17 |
|
jameslord
| hi | 11:18 |
|
cmn
| !hi | 11:18 |
|
gitinfo
| [!welcome] Welcome to this channel. Go ahead and ask your question. Very few people are responding to greetings, but will respond if a question is asked. | 11:18 |
|
jameslord
| http://paste.ubuntu.com/795870/ | 11:19 |
|
| what this means | 11:19 |
| → FernandoBasso joined | 11:19 |
| → Cromulent joined | 11:19 |
|
jameslord
| two sha is the same:( | 11:19 |
|
cbreak
| so? | 11:20 |
| → glcrazy joined | 11:20 |
|
cbreak
| just means that master is "checked out" | 11:20 |
| → cyfi joined | 11:21 |
|
cmn
| it's a list of branches | 11:21 |
|
| and in this case, master is the default branch for that repository | 11:22 |
| → khmarbaise joined | 11:23 |
| → canton7 joined | 11:23 |
| ← ASIRINeiluj left | 11:23 |
| → Textmode joined | 11:25 |
| → brian_g joined | 11:26 |
| → Cs-hard joined | 11:27 |
| ← giallu left | 11:27 |
| ← Cs-hard left | 11:27 |
| → giallu joined | 11:28 |
| → psoo joined | 11:28 |
| ← glcrazy left | 11:29 |
| → robotmay joined | 11:33 |
| → nixmaniack joined | 11:36 |
| → j416 joined | 11:37 |
| → Fandekasp joined | 11:37 |
| ← marthinal left | 11:40 |
| → ganesh_ariveguru joined | 11:40 |
| ← dorisabayon left | 11:41 |
| ← Cromulent left | 11:44 |
| → glcrazy joined | 11:45 |
| ← glcrazy left | 11:46 |
| → glcrazy joined | 11:47 |
| ← kermit left | 11:47 |
| ← fairuz_ left | 11:47 |
| → kermit joined | 11:48 |
| ← glcrazy left | 11:51 |
| → bigkm joined | 11:51 |
| → glcrazy joined | 11:52 |
| ← fayimora left | 11:54 |
| ← toabctl left | 11:56 |
| ← glcrazy left | 11:57 |
| → glcrazy_ joined | 11:58 |
| → Dave^|| joined | 11:59 |
| → yibe joined | 12:00 |
| ← Dave^| left | 12:02 |
| → ngulden joined | 12:04 |
| → nax joined | 12:08 |
| ← nax left | 12:08 |
| → glcrazy__ joined | 12:08 |
| → d0k joined | 12:10 |
| ← glcrazy_ left | 12:11 |
|
EugeneKay
| Good morning, gits! | 12:16 |
| ← glcrazy__ left | 12:16 |
|
sitaram
| !hi | 12:17 |
|
gitinfo
| [!welcome] Welcome to this channel. Go ahead and ask your question. Very few people are responding to greetings, but will respond if a question is asked. | 12:17 |
|
sitaram
| couldn't resist ;-) | 12:17 |
|
EugeneKay
| At leasst somebody is sociable. | 12:17 |
|
sitaram
| easy when the bot is doing all the work ;-) | 12:17 |
|
ManDay
| I will respond to a greeting! | 12:18 |
|
| Hello and welcome EugeneKay ! | 12:18 |
|
canton7
| i'm impressed that the bot picked up on ! hi... good work! | 12:19 |
|
EugeneKay
| I think that means jast implemented the aliases I asked about. | 12:19 |
|
canton7
| ah, it has aliases | 12:20 |
|
| haha, nice | 12:20 |
|
EugeneKay
| !triggers | 12:20 |
|
gitinfo
| See http://jk.gs/git/bot/trigger.php | 12:20 |
|
EugeneKay
| Yup. Nifty. | 12:20 |
|
sitaram
| yeah I think hi and hello were the first aliase (to welcome) | 12:21 |
|
| aliases* | 12:21 |
| → LongBeach joined | 12:21 |
|
ManDay
| !pizza | 12:21 |
|
gitinfo
| DOUGH -- 200 g saw dust, 800 g flour, 590 millichopins water, 40 g yeast, 1 pinch of salt, 1 tbsp olive oil, 1 tbsp camphor. SAUCE -- 1 can minced tomatoes, 118 millichopins petroleum ether, 50 g laburnum (dried), 50 g repulsion gel, salt/pepper. TOPPINGS -- fish-shaped sediment, 100 g zombie flesh, 20 g rhubarb, 200 g cheese. Bake at 130 °Rø for 103.97 Sothic nanocycles. Enjoy! | 12:21 |
| → Shusshu joined | 12:21 |
| ← preflex left | 12:21 |
|
canton7
| glad that's still around :) | 12:21 |
|
sitaram
| yeah that one's nice too, though I like ! doesntwork best | 12:22 |
|
ManDay
| you mean | 12:22 |
|
| !work | 12:22 |
|
gitinfo
| Sorry to hear it doesn't work. What did you want it to do? What happened instead? Did you get any error messages? | 12:22 |
|
ManDay
| :P | 12:22 |
|
sitaram
| !doesntwork | 12:22 |
|
gitinfo
| What happened? Did it fall asleep on your couch? Eat your homework? Destroy your hard drive? Is it making faces at you? Does it want more money? Is it sleeping with your best friend? Please be specific! | 12:22 |
| → preflex joined | 12:22 |
|
ManDay
| Oh :) | 12:22 |
| → snearch joined | 12:24 |
|
sitaram
| whoever wrote that deserves a pizza | 12:24 |
|
| or beer | 12:24 |
|
| hmm.... why is this text called "fortune"? !fortune | 12:28 |
|
gitinfo
| I'm sorry that you are stupid, ugly, and not using git. Still, some misguided souls think that something other than git might be better for them. Who knows, it might even be true for you. In any case, we don't care. Good-bye. | 12:28 |
|
| sitaram doesn't get the connection | 12:28 |
| ← apok left | 12:29 |
|
cmn
| seeking fortune somewhere else maybe? | 12:30 |
|
IcePic
| "fortune" is the old name for the "give me a randomized text from a file with mostly witty sayings" if that is a hint. | 12:31 |
|
cmn
| old name? fortune still exists | 12:31 |
|
canton7
| incidentally, having proper fortunes in gitinfo would be awesome for those slow days | 12:32 |
|
| IcePic, which in turn comes from fortune cookies? Or is it the other way around? | 12:32 |
|
cbreak
| fortune cookies are just a specific means to deliver fortunes | 12:32 |
|
sitaram
| IcePic: yeah but this one doesn't change | 12:33 |
|
cbreak
| there are others, like overpriced "premium" phone numbers or archaic unix services | 12:33 |
|
EugeneKay
| I'd like to see a !vend tied to http://itvends.com | 12:33 |
|
cbreak
| !blend? | 12:34 |
|
IcePic
| canton7: the first would be right, I gather | 12:34 |
|
| fortunes as commit messages if the user doesnt supply one. =) | 12:34 |
|
| "Man who kisses blowfish gets free lip piercing" | 12:35 |
|
cbreak
| that sounds... evil. | 12:35 |
|
canton7
| fortune | cowsay is probably my favourite linux tool combination | 12:36 |
| → linusoleander joined | 12:37 |
| → vdv joined | 12:38 |
| ← canton7 left | 12:39 |
| ← flavius left | 12:39 |
| → nikuyoshi joined | 12:41 |
| → munichlinux joined | 12:42 |
|
Mikachu
| fortune | cowsay | figlet | 12:43 |
| ← schnatta left | 12:43 |
| ← linusoleander left | 12:43 |
|
cbreak
| OS X has a command line tool "say". It's great. :) | 12:43 |
|
| you can make the computer of your little sister talk to her via ssh :) | 12:44 |
|
| ... not that I would ever do that... | 12:44 |
|
EugeneKay
| git config commity.empty=true|false|fortune | 12:45 |
|
| -y | 12:45 |
| → QaDeS joined | 12:45 |
| → Cromulent joined | 12:46 |
|
j416
| lol | 12:46 |
| → schnatta joined | 12:49 |
| ← wilmoore left | 12:49 |
| ← Cromulent left | 12:51 |
| → sudoquai joined | 12:51 |
|
matjas
| cbreak: https://github.com/mathiasbynens/dotfiles/blob/master/.aliases#L88-91 not that I would ever use any of those… | 12:51 |
| → Jackneill joined | 12:51 |
| ← Jackneill left | 12:52 |
| → Jackneill joined | 12:52 |
| → ripero joined | 12:53 |
| ← break57382 left | 12:53 |
|
cbreak
| naturally... :) | 12:54 |
| ← ripero left | 12:54 |
| → ripero joined | 12:54 |
| ← ripero left | 12:57 |
| → spaceonline joined | 12:58 |
| → Chib joined | 13:02 |
| ← dangerousdave left | 13:03 |
| ← ganesh_ariveguru left | 13:05 |
| → NiklasFiekas joined | 13:06 |
|
EugeneKay
| matjas - one alias I use a bunch is cdc='cd && clear' | 13:07 |
| → ganesh_ariveguru joined | 13:07 |
| → Spockz joined | 13:11 |
| ← Spockz left | 13:11 |
| → ikpL joined | 13:11 |
|
ikpL
| Hello Everyone, I want to learn about git | 13:11 |
|
| what is the best book for git | 13:11 |
|
cmn
| !book | 13:12 |
|
gitinfo
| 'Pro Git' is a complete book about git that is available online for free (there's a print version, too): http://progit.org/book/ | 13:12 |
|
ikpL
| great thanx gitinfo | 13:12 |
| → break57382 joined | 13:13 |
|
cbreak
| the bots! they steal our jobs! | 13:14 |
| → Spockz joined | 13:14 |
| ← vdv left | 13:15 |
|
NiklasFiekas
| :D | 13:15 |
|
ikpL
| is gitinfo a bot ? | 13:15 |
|
FauxFaux
| We should lynch that jsat guy. | 13:15 |
|
NiklasFiekas
| yep. and cmn made him say that with "!book" | 13:15 |
|
cmn
| !gitinfo | 13:15 |
|
gitinfo
| I am an IRC bot which responds to certain keywords to provide helpful(?) information to humans. Please see http://jk.gs/git/bot for more information about how to use me. | 13:15 |
| ← ganesh_ariveguru left | 13:16 |
| ← gusnan left | 13:16 |
| → ganesh_ariveguru joined | 13:17 |
| ← ganesh_ariveguru left | 13:17 |
|
ikpL
| Also I am a noob to IRC, I didn't know that | 13:19 |
|
_ikke_
| Bots are quite common on IRC | 13:19 |
|
wereHamster
| you're yourself one, _ikke_, admit it! | 13:19 |
|
cbreak
| basic infrastructure :) | 13:20 |
|
_ikke_
| wereHamster: Bots are quite common on IRC | 13:20 |
|
ikpL
| bots useful | 13:20 |
| ← psoo left | 13:21 |
|
_ikke_
| wereHamster: Calling me a bot is an insult to my intelligence and sophistication | 13:21 |
|
wereHamster
| we have a smart bot here, he could even pass the turing test :) | 13:22 |
|
_ikke_
| How may I help you | 13:23 |
| ← sebrock left | 13:24 |
|
cbreak
| I am not a robot, I am a unicorn | 13:24 |
|
EugeneKay
| ikpL - if you want an intro to Version Control Systems in general, I found "Version Control by Example" to be a good text. It's free at http://www.ericsink.com/vcbe | 13:26 |
| ← schnatta left | 13:26 |
|
j416
| matjas: scary 'undopush' you have there :) | 13:26 |
| → fayimora joined | 13:27 |
| ← ikpL left | 13:29 |
| → nicoulaj joined | 13:31 |
| ← lonewulf` left | 13:32 |
| → LeMike joined | 13:37 |
| gitinfo set mode: +v | 13:38 |
| → selevt joined | 13:39 |
|
LeMike
| hi there. i like to use git as a backup-system. so I have a external hd which shall be the "master" and a usb stick containing the last 100 revisions. first: how do i clone only the last 100 revs? | 13:39 |
|
EugeneKay
| !backup | 13:39 |
|
gitinfo
| Taking a backup of a git repository is always a good idea before doing something unusual (well, it is an excellent idea as a matter of course). Usually, the best way to TACTICALLY back up a git repo is `git clone --mirror`. However, some unusual maintenance might require `tar cf repo-backup.tar repodir`. Testing in a clone is also an excellent idea. | 13:39 |
|
EugeneKay
| You really can't clone "the last X revisions" because any revision is dependent upon all parent revisions. | 13:39 |
|
| (and that trigger isn't what i thought it was.... hrm) | 13:40 |
|
Mikachu
| you can, git clone --depth=99 | 13:40 |
|
cmn
| to grab only the last 100 revisions, --depth 99 should work, almost | 13:40 |
|
| but that kinda depends on what you consider "last" | 13:40 |
|
| --depth will grab that amount on each branch | 13:40 |
|
| and you can't tell a priori what the last 100 revs are by date | 13:41 |
|
EugeneKay
| That's a shallow clone, innit? With different SHAs | 13:41 |
|
cmn
| it's a shallow clone, but you get the same shas | 13:41 |
|
| the earliest commit is a lie, though | 13:41 |
|
EugeneKay
| Ah, it doesn't do push/pull. | 13:42 |
|
cmn
| it's put there with a graft or a replacement or some such | 13:42 |
|
EugeneKay
| Cuz the chain of SHAs is broken | 13:42 |
|
cmn
| you kinda can, but it's not always obvious when you can push | 13:42 |
|
| fetching should work, no probls | 13:42 |
|
| well, mostly | 13:42 |
|
cbreak
| LeMike: go look at bup or a real backup tool | 13:43 |
|
EugeneKay
| But anyway. Git is not a backup tool. | 13:43 |
|
cbreak
| git on its own does not support proper history pruning | 13:43 |
|
| things like --depth are inadequate replacements since they prevent you from validating repo integrity | 13:43 |
|
| also, git has quite some problems with big binary files, which bup tries to solve | 13:44 |
|
Mikachu
| shallow clones predate grafts and replacements, iirc | 13:44 |
| → ASIRINeiluj joined | 13:44 |
| → neurodrone joined | 13:45 |
|
LeMike
| it's just small files non-binary. at weekends I like to pull / sync the stick on the hd. that's possible via sync / pull, too? | 13:46 |
| → Cromulent joined | 13:46 |
|
cbreak
| don't bother with history pruning then :) | 13:46 |
|
EugeneKay
| Sure, but your repo will continuously grow. | 13:46 |
|
LeMike
| that's okay. it wont grow that big | 13:47 |
|
_ikke_
| CLI version of github issues: https://github.com/vesln/issues | 13:48 |
|
LeMike
| i will try that on two pc's now. thanks so far ;) btw: it was svn all the time and I have my history since ages ;D but now I fell in love with git. | 13:49 |
| ← uu left | 13:49 |
|
EugeneKay
| _ikke_ - "Requires: node.js" | 13:50 |
| ← shruggar left | 13:51 |
|
_ikke_
| EugeneKay: Saw that afterwards | 13:51 |
|
EugeneKay
| I'm not really sure wtf the architecture of that thing is | 13:52 |
|
| But if it requires node.js to make an API call against Github..... urdoinitrong | 13:52 |
|
| That's the sort of thing thats implementable in bash. Or perl. | 13:52 |
|
_ikke_
| EugeneKay: Yup | 13:53 |
|
| or python | 13:53 |
|
| or any other language | 13:53 |
|
EugeneKay
| I know there's a bash library for JSON, which is what the github v3 api is. | 13:53 |
|
Mikachu
| network programmin in shell script, no thanks | 13:54 |
| ← Octalot left | 13:54 |
|
EugeneKay
| Mikachu - it's not even network programming, it's doable with curl | 13:54 |
|
Mikachu
| how is that not network? :) | 13:54 |
|
EugeneKay
| It's REST, not TCP stack. | 13:54 |
|
cmn
| hm, if shallow clones predate grafts and replacements, then I've no idea how the hell they're lying to the DAG | 13:55 |
| → gusnan joined | 13:55 |
| → DarkAR joined | 13:56 |
|
EugeneKay
| Poke about in git.git ;-) | 13:56 |
|
Mikachu
| hm, maybe they don't predate grafts, but they have explicit support | 13:56 |
| → eijk joined | 13:56 |
|
Mikachu
| Documentation/technical/shallow.txt | 13:56 |
| → k299 joined | 13:57 |
|
cbreak
| javascript? | 13:57 |
| → gavin_huang joined | 13:57 |
| ← k299 left | 13:57 |
|
cmn
| it's what the cool kids are using nowadays instead of bash, apparently | 13:57 |
|
Mikachu
| "Programs are written in JavaScript, using event-driven, asynchronous I/O to minimize overhead" says wikipedia about node.js | 13:57 |
| → ipalaus_ joined | 13:57 |
|
Mikachu
| which seems like an oxymoron, but whatever ;) | 13:57 |
| → lonewulf` joined | 13:58 |
|
wereHamster
| Mikachu: why oxymoron? | 13:58 |
| → k299 joined | 13:58 |
|
Mikachu
| javascript + minimize overhead | 13:58 |
|
_ikke_
| Mikachu: Language != implementation | 13:58 |
|
cmn
| the interpreters are pretty good nowadays, v8 (and thus node.js) has JIT | 13:58 |
| ← k299 left | 13:58 |
|
Mikachu
| afaik, it's still not possible to make more advanced programs in current javascript than you could run on a real computer 15 years ago? | 13:59 |
|
wereHamster
| Mikachu: define 'advanced' | 13:59 |
| → k299 joined | 13:59 |
|
Dynom
| git man | 13:59 |
|
_ikke_
| man git | 13:59 |
|
gitinfo
| the git manpage is available at http://jk.gs/git.html | 13:59 |
|
cmn
| for advanced in what way? you can do pretty man anything with js | 13:59 |
| → erichynds joined | 13:59 |
|
Dynom
| thanks gitinfo | 13:59 |
|
cbreak
| cmn: mostly malware and fluff | 14:00 |
|
| thanks to the dumbest idea of web 2.0: downloading and executing code via untrusted networks | 14:00 |
|
| and even more, from untrusted sources | 14:00 |
|
Mikachu
| "dumbest idea of web 2.0", now moving from oxymorons to tautologies :P | 14:00 |
|
cbreak
| and even more, even trusted sources embed untrusted sources for Advertisement | 14:00 |
|
cmn
| you mean you don't trust my website that promises you can win an iPad 3 if you just click on that little linik? | 14:01 |
|
| link* | 14:01 |
|
cbreak
| java script reliance is even worse than abusing an inherent stateless pull protocol like http for interactive applications... | 14:01 |
|
wereHamster
| cbreak: so I take you download html pages with netcat and view them with ed, right? | 14:01 |
|
cbreak
| wereHamster: no. I download html pages and view them in a web browser... | 14:02 |
|
| I don't just execute the code embedded in those pages | 14:02 |
|
EugeneKay
| Use node.js and MongoDB for web scale | 14:02 |
|
cbreak
| why bother? | 14:02 |
|
EugeneKay
| Because it's eb scale | 14:03 |
|
cbreak
| Firefox can scale web pages without that | 14:03 |
|
EugeneKay
| http://youtu.be/b2F-DItXtZs | 14:03 |
|
| cbreak can't understand belgian | 14:03 |
|
cbreak
| flemish? | 14:03 |
|
| or french I guess | 14:03 |
| ← giallu left | 14:03 |
|
jast
| everybody needs more web scale | 14:03 |
|
| even the web isn't web scale enough | 14:04 |
|
| if only they used node.js for the web, it would all be different | 14:04 |
|
_ikke_
| /dev/null db is webscale | 14:04 |
|
jast
| oh yes | 14:05 |
|
| I store all of my data in it | 14:05 |
|
_ikke_
| I put my back-ups in there | 14:05 |
| → linusoleander joined | 14:05 |
| → crisp joined | 14:06 |
|
cmn
| the graphs are more interesting with the /dev/urandom db | 14:08 |
| ← linusoleander left | 14:09 |
|
EugeneKay
| Backup with 'dd if=/dev/sda1 of=/dev/null bs=1M' | 14:09 |
|
| The null device is unlimited in size, and very fast, so your backups will be there instantly. | 14:09 |
|
jast
| cool, I gotta try that | 14:09 |
|
cbreak
| you should use /dev/random | 14:10 |
|
| higher chance for getting the data back out | 14:10 |
|
_ikke_
| Who wants to get his data back out? | 14:10 |
|
jast
| hmm, 48 MB/s | 14:10 |
|
cbreak
| that's kind of the point of backups | 14:10 |
|
jast
| that's not actually very fast | 14:10 |
| ← __cli left | 14:10 |
|
EugeneKay
| On a serious note, while I understand the rationale behind projects like Node.js(asynchronous I/O+callbacks to handle more clients simultaneously by forking off the I/O blocking), I can't for the life of me figure out why in the turd they used JS. | 14:11 |
|
| I mean, wtf? | 14:11 |
|
jast
| because JS is web scale | 14:11 |
|
| the goal was to appeal to web developers, I guess | 14:11 |
|
| because any serious developer would have realized straight away that Node.js is nothing special at all ;) | 14:11 |
|
EugeneKay
| 'Web developers' are usually..... what's the word I'm after. | 14:11 |
|
cmn
| js represents a low barrier of entry | 14:11 |
|
| they're excitable | 14:12 |
|
jast
| EugeneKay: "not developers"? :} | 14:12 |
|
| two words, though | 14:12 |
|
IcePic
| isnt js one of the more portable languages there is right now? | 14:12 |
|
jast
| it's not particularly more portable than other languages | 14:12 |
|
EugeneKay
| In the same sense that C is portable | 14:12 |
|
cmn
| no, C runs on more machines | 14:12 |
|
jast
| the main thing about JS is that it has no standard library | 14:12 |
|
| it's easy to port something without a standard library | 14:12 |
|
cbreak
| take a look at Lua | 14:13 |
|
jast
| by default, all you've got is the language, with no way to do anything like I/O | 14:13 |
|
cbreak
| it's actually well designed, extremely easy to embed, and fast | 14:13 |
|
jast
| I don't like lua, for reasons I'm not completely sure about | 14:13 |
|
cbreak
| maybe one of the fastest scripting languages out there | 14:14 |
|
| (thanks to LuaJIT) | 14:14 |
| → mandric joined | 14:14 |
|
matjas
| j416: re:undopush, yes, very scary… but i sometimes need it. is there a better way to do it? | 14:14 |
|
Mikachu
| EugeneKay: in episode 2 it is revealed the author actually thinks php is good | 14:14 |
|
jast
| I have fairly specific requirements of a new language that I'd be willing to learn | 14:14 |
|
EugeneKay
| "PHP is a hell of a drug." | 14:15 |
|
j416
| matjas: well the problem is, what if your remote is not 'origin' and you want to undopush a branch that is not 'master'? | 14:15 |
|
jast
| one of them is: static typing with type inference (and optional type annotations) | 14:15 |
|
j416
| matjas: if you're not careful, you'll force-push something else to the master branch of origin | 14:15 |
|
EugeneKay
| I rather like PHP, as a website language. It's a lot more webfriendly than perl. | 14:15 |
|
jast
| I do quick one-off stuff in PHP | 14:15 |
|
matjas
| j416: true | 14:15 |
|
j416
| :) | 14:16 |
| ← swombat left | 14:16 |
|
jast
| such as the web interface for the bot :) | 14:16 |
| → tshauck joined | 14:16 |
|
jast
| but all of the backend stuff is actually done by the bot | 14:16 |
|
Mikachu
| every time i look up anything in php, it looks like they made it that specific way only to make it easy to get wrong and produce exploits | 14:16 |
|
j416
| jast: what language is the bot in? | 14:16 |
|
jast
| via a control connection | 14:16 |
|
| perl | 14:16 |
|
cbreak
| jast: Lua has strong typing, but it types values and not variables | 14:16 |
|
j416
| perl | 14:16 |
|
cbreak
| which is... interesting | 14:16 |
|
bremner
| cbreak: sure, but it means type-inference is pretty much impossible | 14:17 |
|
jast
| I've got my own plans for typ inference | 14:17 |
|
cbreak
| it's runtime | 14:17 |
|
| (and manual) | 14:17 |
|
jast
| +e | 14:17 |
|
bremner
| that's not inference, that's just observation ;) | 14:17 |
|
jast
| unfortunately they're part of a rather big project and I'm not really making any progress on it | 14:17 |
| ← stamina left | 14:17 |
|
cbreak
| well, my main language is C++ | 14:17 |
|
| probably one of the most strongest typed languages there is :) | 14:18 |
|
| (and type names can span dozens of lines too!) | 14:18 |
|
jast
| so, my ideal language has static/strong typing and type inference | 14:18 |
|
| and extensible syntax | 14:18 |
|
cbreak
| -> C++? :) | 14:18 |
|
jast
| C++ doesn't have type inference | 14:18 |
|
cbreak
| sure does | 14:18 |
|
jast
| example? | 14:18 |
|
cbreak
| I can create types from other types | 14:19 |
|
| auto result = doStuff(input) | 14:19 |
|
jast
| type inference means I can write code without telling the compiler which type a variable is, and it automatically determines the type | 14:19 |
|
| auto? | 14:19 |
| ← neurodrone left | 14:19 |
|
cbreak
| yes | 14:19 |
|
jast
| is that like C++1x or something? | 14:20 |
|
cbreak
| template<typename T> void swap(T const & a, T const & b) | 14:20 |
|
| yes | 14:20 |
|
jast
| well templates OTOH are an abomination :} | 14:20 |
|
cbreak
| generic programming is older though | 14:20 |
|
| they are the essence of type inference | 14:20 |
|
| you can infer the weirdest things | 14:21 |
| → hyperair joined | 14:21 |
|
jast
| C++ is too full of pitfalls (and abyssal ones at that) for my taste | 14:21 |
|
cbreak
| hey | 14:21 |
|
| at most 50% of C++ is pitfalls | 14:21 |
|
| and half of those is from C | 14:21 |
|
jast
| plus I hate the STL with a passion | 14:22 |
|
cbreak
| you don't have to use it :) | 14:22 |
|
jast
| and there isn't really any reasonable alternative to it | 14:22 |
|
cbreak
| unless you write code for sun | 14:22 |
|
jast
| (don't say boost) | 14:22 |
|
cbreak
| Qt | 14:22 |
|
jast
| yeah, Qt *is* an alternative | 14:22 |
|
cbreak
| boost :D | 14:22 |
|
jast
| but it's kind of heavy | 14:22 |
|
| Qt is the main reason I'd consider using C++ at all | 14:22 |
|
cbreak
| well | 14:22 |
|
| compare Qt to other things | 14:23 |
|
jast
| yeah, sure | 14:23 |
| ← sattu94 left | 14:23 |
|
jast
| I liked the compilers that allowed me to link only those parts of a library that were actually needed by the program | 14:24 |
|
| borland's newer pascal compilers, for instance | 14:24 |
| ← rurufufuss left | 14:24 |
|
cbreak
| That's not as easy as it sounds | 14:25 |
| ← DarkAR left | 14:25 |
| ← NiklasFiekas left | 14:25 |
| ← ngulden left | 14:25 |
| ← tewecske left | 14:25 |
| ← dr0id left | 14:25 |
| ← spyro left | 14:25 |
| ← warthog9 left | 14:25 |
| ← moonlightcheese left | 14:25 |
| ← frogonwheels left | 14:25 |
| ← shachaf left | 14:25 |
| ← basepi left | 14:25 |
| ← dhoss left | 14:25 |
| ← munro left | 14:25 |
| ← borodon left | 14:25 |
| ← ShooterMG left | 14:25 |
| ← djh left | 14:25 |
| ← Sinjo left | 14:25 |
| ← CodeBlock left | 14:25 |
| ← phaedrix left | 14:25 |
| ← coopsh left | 14:25 |
| ← tabakhase left | 14:25 |
| ← xoebus left | 14:25 |
| ← trodrigues left | 14:25 |
| ← cYmen left | 14:25 |
| ← Nilbus left | 14:25 |
| ← project2501a left | 14:25 |
| ← Zygo left | 14:25 |
| ← htoothrot left | 14:25 |
| ← aow left | 14:25 |
| ← mikejw left | 14:25 |
| ← Lisimba left | 14:25 |
| ← sobel left | 14:25 |
| ← tpope left | 14:25 |
| ← sente left | 14:25 |
| → dhoss joined | 14:25 |
|
cmn
| gcc + ld can do that, or should be able to | 14:25 |
| → aspotashev joined | 14:25 |
|
cmn
| you tell gcc to keep blocks separate, and tell ld to discard unused code | 14:25 |
| → DarkAR joined | 14:25 |
| → ngulden joined | 14:25 |
| → tewecske joined | 14:25 |
| → dr0id joined | 14:25 |
| → spyro joined | 14:25 |
| → moonlightcheese joined | 14:25 |
| → frogonwheels joined | 14:25 |
| → shachaf joined | 14:25 |
| → munro joined | 14:25 |
| → borodon joined | 14:25 |
| → ShooterMG joined | 14:25 |
| → djh joined | 14:25 |
| → Sinjo joined | 14:25 |
| → mikejw joined | 14:25 |
| → coopsh joined | 14:25 |
| → tabakhase joined | 14:25 |
| → xoebus joined | 14:25 |
| → trodrigues joined | 14:25 |
| → cYmen joined | 14:25 |
| → project2501a joined | 14:25 |
| → Nilbus joined | 14:25 |
| → Zygo joined | 14:25 |
| → htoothrot joined | 14:25 |
| → tpope joined | 14:25 |
| → aow joined | 14:25 |
| → Lisimba joined | 14:25 |
| → sobel joined | 14:25 |
| → sente joined | 14:25 |
| holmes.freenode.net set mode: +vv | 14:25 |
| → NiklasFiekas joined | 14:25 |
|
IcePic
| isnt it the default when linking against static libs? | 14:25 |
| → warthog9 joined | 14:25 |
| ← dr0id left | 14:25 |
| ← shachaf left | 14:25 |
| → phaedrix joined | 14:25 |
| → glcrazy joined | 14:25 |
| ← sudoquai left | 14:25 |
| → shachaf joined | 14:26 |
| → basepi joined | 14:26 |
|
IcePic
| libfoo.a will contain a lot of .o files in a lump, then when you link, you pick out the ones needed to make your app work | 14:26 |
| → dr0id joined | 14:26 |
|
jast
| manually, right? | 14:26 |
|
cmn
| libfoo.a needs to have several sections, though | 14:26 |
|
jast
| I've never seen *any* project do that | 14:26 |
|
cmn
| I think we do this in libgit2 when you build the static library | 14:27 |
| ← glcrazy left | 14:27 |
| ← htoothrot left | 14:27 |
| → sudoquai joined | 14:28 |
| ← frogonwheels left | 14:28 |
| → flaguy48 joined | 14:28 |
|
cbreak
| because C++ is an unmanaged language | 14:29 |
|
| you can do the weirdest crap with it | 14:29 |
| → frogonwheels joined | 14:29 |
|
cmn
| I can't find it in the Makefile now, but we did play around with those options | 14:29 |
|
cbreak
| inside a library, you can do things like jump to code directly | 14:29 |
|
| without going over exported symbols | 14:30 |
| ← munichlinux left | 14:30 |
|
cbreak
| or sometimes even without doing PC relative jumps (which makes the code not position independent) | 14:30 |
| → htoothrot joined | 14:30 |
|
cbreak
| non-position-independent code is faster, but it doesn't play well with ASLR and similar tech | 14:30 |
|
| and doesn't work in dynamic libs | 14:31 |
|
| but appart from that, such jumps also make it extremely hard to find and eliminate dead code | 14:31 |
| → heoa joined | 14:31 |
| → glcrazy joined | 14:31 |
|
heoa
| sorry stupid question -- what was the debug/verbose mode in git? | 14:32 |
| → CodeBlock joined | 14:33 |
|
cbreak
| GIT_TRACE? | 14:33 |
|
| well, or just -vv | 14:33 |
|
heoa
| cbreak: thank you. | 14:34 |
|
cbreak
| (they do different things) | 14:35 |
| ← iocor left | 14:36 |
| → dorisabayon joined | 14:37 |
| → ramlev joined | 14:39 |
| ← ramlev left | 14:39 |
| ← flip_digits left | 14:40 |
| ← Fandekasp left | 14:41 |
| → ramlev joined | 14:42 |
| → weeb1e joined | 14:42 |
|
jast
| .random | 14:42 |
|
gitinfo
| [] | 14:42 |
|
jast
| well, that *is* random | 14:42 |
|
cbreak
| password generator: | 14:43 |
|
| dd if=/dev/random bs=512 count=8 | openssl base64 | 14:43 |
| → amigojapan joined | 14:44 |
|
cmn
| I wonder how many DBs would accept such a long password | 14:45 |
| → giallu joined | 14:45 |
|
cmn
| well, the long password only happens on /dev/urandom, my dd just gives up after a bit | 14:45 |
|
| when I point it to /dev/random | 14:45 |
| ← ramlev left | 14:45 |
| → ramlev joined | 14:45 |
|
cbreak
| that's the linux implementation of /dev/random | 14:46 |
| ← ramlev left | 14:46 |
| → ramlev joined | 14:46 |
|
cbreak
| unlike the one in OS X, it blocks on lack-of-entropy | 14:46 |
| ← xxthink left | 14:47 |
|
_ikke_
| if you don't want to be blocked, use urandom | 14:47 |
|
jast
| .random | 14:48 |
|
gitinfo
| <cbreak> password generator: <cbreak> dd if=/dev/random bs=512 count=8 | openssl base64[2] | 14:48 |
|
IcePic
| watch out when using /dev/random on linux, since it may give you short reads. | 14:48 |
|
| instead of blocking | 14:48 |
|
cbreak
| cmn: asking wether a DB supports such passwords is the wrong thing to ask | 14:50 |
|
| cmn: unless you want to be a screwup like Sony or Stratfor and store Unhashed Passwords or Credit Card Numbers + Verification Codes :) | 14:50 |
|
IcePic
| cbreak: the fines from the PCI-DSS authorities should be insanely severe if you screw up like that | 14:51 |
|
cbreak
| well... | 14:52 |
|
| we'll see :) | 14:52 |
|
| I've not heard of stratfor in a few days | 14:52 |
|
| wonder if they still exist | 14:52 |
| ← brian_g left | 14:52 |
| → EdwardIII joined | 14:52 |
|
EdwardIII
| hey | 14:52 |
|
cbreak
| but it was even on the local (Swiss) radio news that they got compromised and lost CC Numbers | 14:52 |
| ← CodeBlock left | 14:53 |
| → CodeBlock joined | 14:53 |
|
cbreak
| so any regulative organisation should know :) | 14:53 |
|
cmn
| good point, the DB should only store the hash | 14:53 |
|
jast
| all right, guys, feel free to add random factoids or nonsense to the .random db, using .random add foobar | 14:53 |
|
EdwardIII
| i'm using git svn. i've received a message to let me know upstream has made some changes, now i don't want to go ahead and rebase without a backup in case i break something | 14:53 |
|
cbreak
| .random add heads (chosen by fair coin flip) | 14:53 |
|
gitinfo
| cbreak: okay. | 14:53 |
|
jast
| EdwardIII: if your stuff is all committed, we can restore it even if the rebase goes awry | 14:53 |
|
EdwardIII
| if i do git diff remotes/trunk # i don't seem to see any changes | 14:53 |
|
cbreak
| .random add tails (chosen by fair coin flip) | 14:54 |
|
gitinfo
| cbreak: okay. | 14:54 |
|
cbreak
| EdwardIII: you have to do git svn fetch first | 14:54 |
|
EdwardIII
| jast: right - would i do that by running git reflog, figuring out which was the last commit before the rebase then doing a git reset hard? | 14:54 |
|
cbreak
| also, git svn rebase would still have the git reflog safety net | 14:54 |
|
jast
| EdwardIII: that's one way to do it, yeah | 14:54 |
|
EdwardIII
| cbreak: do git svn fetch,then git diff? | 14:54 |
|
cmn
| .random add 4 (chosen by fair die throw) | 14:54 |
|
gitinfo
| cmn: okay. | 14:54 |
|
EdwardIII
| not worth making a backup branch first? | 14:54 |
|
cbreak
| EdwardIII: sure. | 14:54 |
|
| sure. | 14:55 |
|
| will only cost you 4kb or so | 14:55 |
|
jast
| EdwardIII: you can make one if you like. it doesn't cost anything, right? :) | 14:55 |
|
cbreak
| (depending on your HD Cluster Size) | 14:55 |
|
EdwardIII
| heh | 14:55 |
|
| or maybe a tag would be more sensible | 14:55 |
|
cbreak
| tags == branches | 14:55 |
|
| in this respect | 14:55 |
|
EdwardIII
| right | 14:55 |
|
jast
| since it's temporary anyway, it doesn't matter | 14:55 |
|
EdwardIII
| well, it's probably a good time for me to tag now anyway (haven't made any tags yet) | 14:56 |
| ← Cromulent left | 14:57 |
| → Cromulent joined | 14:57 |
| ← amigojapan left | 14:57 |
|
| EdwardIII git fetches | 14:57 |
|
EdwardIII
| * git svn fetch | 14:57 |
|
| man, any git/svn stuff always seems to take an age heh | 14:57 |
|
jast
| that's because svn is slow :} | 14:58 |
|
EdwardIII
| heh | 14:58 |
| → glcrazy_ joined | 14:58 |
|
jast
| especially if you use its http transport | 14:58 |
| ← giallu left | 14:58 |
| → Goplat joined | 14:58 |
|
EdwardIII
| i do | 14:59 |
|
jast
| almost everyone does | 14:59 |
|
EdwardIII
| i mostly use git svn for wordpress plugins i want to mess with | 14:59 |
|
cbreak
| git-svn isn't like normal svn that doesn't care about integrity | 15:00 |
|
| or history | 15:00 |
|
| and just fetches current state | 15:00 |
|
| git-svn imports the whole history, so it uses way more data/interaction | 15:00 |
|
EdwardIII
| ah ha | 15:00 |
| ← glcrazy left | 15:01 |
|
jast
| yeah, normally svn just fetches updates to all files. git-svn fetches the complete history (at least the parts it doesn't have yet) | 15:01 |
|
EdwardIII
| git has so many, many features | 15:01 |
|
cbreak
| svn server admins love people who do git svn clones :) | 15:01 |
|
EdwardIII
| sarcasm? | 15:02 |
|
jast
| nonono | 15:02 |
|
EdwardIII
| heh | 15:02 |
|
jast
| never :) | 15:02 |
|
cmn
| all that memory and processing power was just gonna sit there unused, we're helping | 15:02 |
|
EdwardIII
| hah | 15:02 |
|
| despite git's complexity it does seem to do simple stuff better than svn though - ignoring files, for example | 15:03 |
| ← ngulden left | 15:03 |
|
EdwardIII
| that always seemed like a big rigmarole with svn | 15:03 |
|
cbreak
| one of the groups I work with has an SVN Commit EMail hook to the whole group | 15:03 |
|
| they also love when ever I git svn dcommit a bunch of new things... | 15:03 |
|
jast
| yeah, I remember when I was in a similar situation | 15:04 |
|
cbreak
| especially since I write good (-> Detailed and descriptive) commit messages | 15:04 |
|
jast
| nobody ever complained, though | 15:04 |
|
cbreak
| and I commit nicely and atomically | 15:04 |
|
Mikachu
| "stop working so much >_>" | 15:04 |
|
cbreak
| oh, I had someone say that he liked it | 15:04 |
| → marthinal joined | 15:04 |
|
cbreak
| he'd actually see what changed | 15:04 |
| ← Cromulent left | 15:06 |
| ← AmirBehzad left | 15:08 |
| → linusoleander joined | 15:08 |
| ← ramlev left | 15:08 |
| ← nicoulaj left | 15:09 |
| → berserkr joined | 15:11 |
|
EdwardIII
| whaddyaknow, upstream implemented the same thing i implemented downstream | 15:11 |
|
| if i'd thought he would want it i'd have sent a patch... | 15:11 |
|
LeMike
| this is great -.- remote refusing to update checked out branch. i have a new clone and new pull, just changed one file. how could that be? | 15:12 |
| ← drizzd left | 15:13 |
|
cmn
| because the reason is the checked-out branch | 15:13 |
|
| doesn't matter what actually changed | 15:13 |
|
cbreak
| LeMike: don't push to non-bare repositories | 15:13 |
|
LeMike
| yee. what does that "non-bare" mean? | 15:14 |
|
cbreak
| LeMike: man gitglossary | 15:15 |
|
gitinfo
| LeMike: the gitglossary manpage is available at http://jk.gs/gitglossary.html | 15:15 |
|
| LeMike: an explanation of bare and non-bare repositories can be found here: http://bare-vs-nonbare.gitrecipes.de/ | 15:15 |
| → munichlinux joined | 15:16 |
| → mxweas joined | 15:17 |
| → ramlev joined | 15:17 |
| ← ramlev left | 15:17 |
| ← mxweas left | 15:18 |
| → ramlev joined | 15:18 |
| ← Bartzy left | 15:19 |
| ← ramlev left | 15:19 |
| → ramlev joined | 15:19 |
| ← glcrazy_ left | 15:19 |
|
LeMike
| thanks cbreak. can I solve this by rebase to the .git folder or is a complete new clone / init needed? | 15:20 |
| → matsebc joined | 15:20 |
|
EdwardIII
| hrm what do you guys use for conflicts? 3 way vimdiff? | 15:20 |
|
cbreak
| rebase? nothing to do with that | 15:20 |
|
| you have to change the server repo | 15:20 |
|
| (the one you want to push to) | 15:20 |
|
| or push to a branch that is not checked out in the current server repo | 15:20 |
|
| EdwardIII: TextWrangler, a normal programmers text editor | 15:21 |
|
| EdwardIII: but take a look at man git-merge-tool | 15:21 |
|
LeMike
| i ment something like: git remote add origin file:///.../.git | 15:21 |
|
EdwardIII
| cbreak: macalicious? | 15:21 |
|
cbreak
| or was that man git-mergetool? | 15:21 |
|
gitinfo
| the git-mergetool manpage is available at http://jk.gs/git-mergetool.html | 15:21 |
|
cbreak
| LeMike: no | 15:21 |
|
| LeMike: that's not going to do anything | 15:22 |
|
LeMike
| damn. ok i read again. | 15:22 |
|
cmn
| LeMike: it's not the path that makes bar or non-bare | 15:22 |
|
LeMike
| it's up from the init | 15:22 |
| → mloskot joined | 15:23 |
| ← mloskot left | 15:23 |
| → mloskot joined | 15:23 |
| ← jameslord left | 15:27 |
| → glcrazy_ joined | 15:27 |
| → joshsmith joined | 15:27 |
| ← glcrazy_ left | 15:29 |
| → vpopov joined | 15:30 |
| → glcrazy_ joined | 15:30 |
| ← Chib left | 15:32 |
| → neurodrone joined | 15:32 |
| → jameslord joined | 15:32 |
| → Yuuhi joined | 15:32 |
| tizzo-afk → tizzo | 15:34 |
| ← glcrazy_ left | 15:35 |
| → yshh joined | 15:36 |
| → glcrazy_ joined | 15:36 |
| ← Spockz` left | 15:37 |
| ← tomislater left | 15:38 |
| ← ramlev left | 15:38 |
| → ramlev joined | 15:39 |
| → psoo joined | 15:41 |
| → delight joined | 15:43 |
| ← bigkm left | 15:45 |
| → glcrazy__ joined | 15:47 |
| ← glcrazy_ left | 15:47 |
| → glcrazy_ joined | 15:49 |
| → cantoma joined | 15:49 |
| ← glcrazy__ left | 15:52 |
| → sebrock joined | 15:57 |
| ← munichlinux left | 15:57 |
| → glcrazy__ joined | 15:59 |
| ← glcrazy__ left | 15:59 |
| ← glcrazy_ left | 16:01 |
| → brian_g joined | 16:02 |
| → zxiest joined | 16:05 |
|
zxiest
| Hello :-) | 16:05 |
|
| I would like to understand a little thing about git... | 16:05 |
| → eijk_ joined | 16:05 |
| ← eijk left | 16:05 |
| → rgr joined | 16:05 |
|
zxiest
| Let's say I have the master branch, I branch and checkout B1, do some changes. Then, I switch back to master. When I branch and checkout B2, I get B1's files. Is there a way to branch from master? | 16:06 |
|
rgr
| how do I use git difftool to compare current version of a file and one X commits back? | 16:06 |
|
sitaram
| rgr: git difftool oldsha -- file # should work I think | 16:07 |
|
jast
| zxiest: if you never committed your changes, they are "floated" to other branches you check out (unless that's not possible, in which case checkout refuses to switch branches) | 16:07 |
| → jwmann joined | 16:07 |
|
rgr
| I dont want to use sha . just filename | 16:08 |
| ← psoo left | 16:08 |
|
zxiest
| jast i did commit to B1 .. but I would like to branch from master | 16:08 |
|
rgr
| or ^ notation | 16:08 |
|
jast
| rgr: then say HEAD~X instead of the SHA | 16:08 |
|
| if you want it to use a version X commits back, you have to tell it *somehow*, obviously | 16:08 |
|
| it can't read X from your mind | 16:08 |
|
rgr
| so "git difftool file file~3 "? | 16:08 |
|
sitaram
| no | 16:08 |
| ← gavin_huang left | 16:09 |
|
sitaram
| git difftool HEAD~3 -- file | 16:09 |
|
rgr
| obviously. I never mentioned it reading my mind. | 16:09 |
|
| ah yes | 16:09 |
|
| thanks | 16:09 |
|
jast
| zxiest: if you branched from master, the resulting branch should have the same files as master | 16:09 |
| ← dr0id left | 16:10 |
|
sitaram
| zxiest: if you branched from master to B1, then committed on B1, then checkout master, then branch B2 from there, it *should* branch from master | 16:10 |
| → mkg7 joined | 16:10 |
|
rgr
| Is there a general consensus on best difftool/diff browser for linux based osen? p4merge is pretty nice. | 16:10 |
|
bremner
| kdiff3 is ok for a gui tool | 16:11 |
| → jameslord1 joined | 16:11 |
|
sitaram
| rgr: general consensus on subjective stuff is hard; I *love* kdiff3 | 16:11 |
|
rgr
| thanks | 16:11 |
|
bremner
| right. so sitaram and I have a consensus ;) | 16:11 |
|
sitaram
| indeed ;-) | 16:11 |
|
zxiest
| jast and sitaram thanks .. :-) .. I'll try again.. I must have done something wrong | 16:11 |
| → binjured joined | 16:11 |
| ← binjured left | 16:11 |
|
jast
| I like kdiff3 too (though I'm not a big fan of having to load the KDE libs for something like that) | 16:11 |
|
bremner
| jast: you can get kdiff3 with only QT stuff | 16:12 |
|
sitaram
| yeah that is a pain; but it's a very nice tool -- lots of keyboard controls | 16:12 |
|
rgr
| well, Im aware that there will be the usual "my choice" but most semi sane people can generally point you awre from their faorite to one they know is more generally used or better for beginners ;) | 16:12 |
|
jast
| question is, can I get it without building it myself? :) | 16:12 |
| ← rgr left | 16:12 |
|
bremner
| jast: on debian, yes | 16:12 |
| ← sebrock left | 16:12 |
|
jast
| oh, neat | 16:12 |
| ← jameslord left | 16:12 |
|
jast
| thanks for pointing that out | 16:12 |
| → sebrock joined | 16:13 |
|
bremner
| a pleasure. ;) | 16:13 |
|
sitaram
| bremner: does debian carry 2 kdiff3 packages then? | 16:13 |
| tizzo → tizzo-afk | 16:13 |
|
jast
| yes | 16:13 |
|
| kdiff3 and kdiff3-qt | 16:13 |
|
bremner
| just like evince and evince-gtk | 16:14 |
|
sitaram
| interesting... | 16:14 |
| ← gusnan left | 16:14 |
|
jast
| now if only dpkg weren't so slow reading its database :\ | 16:14 |
| → jeffisabelle joined | 16:15 |
| ← mandric left | 16:16 |
| ← tshauck left | 16:17 |
| ← crisp left | 16:18 |
| → soulcake joined | 16:21 |
| → gavin_huang joined | 16:22 |
| ← thomas_b left | 16:26 |
| ← stodan left | 16:30 |
| ← jeffisabelle left | 16:32 |
| → sp3ctr joined | 16:32 |
| ← Sigma left | 16:32 |
| → p3rror joined | 16:34 |
| ← brian_g left | 16:37 |
| ← aspotashev left | 16:38 |
| ← nikuyoshi left | 16:38 |
| ← krz left | 16:38 |
| → krz joined | 16:38 |
| ← krz left | 16:38 |
| → krz joined | 16:38 |
| → Destos joined | 16:39 |
| → nikuyoshi joined | 16:41 |
| → fermianyon joined | 16:42 |
| → Cromulent joined | 16:42 |
| → aspotashev joined | 16:43 |
| ← FernandoBasso left | 16:43 |
| → notola joined | 16:43 |
| → brian_g joined | 16:43 |
| ← mloskot left | 16:44 |
| → arvind_khadri joined | 16:45 |
| ← arvind_khadri left | 16:45 |
| → arvind_khadri joined | 16:45 |
| ← notola left | 16:45 |
| → Sigma joined | 16:46 |
| → mandric joined | 16:49 |
| → millerti joined | 16:49 |
| → mloskot joined | 16:50 |
| ← nikuyoshi left | 16:52 |
| ← mloskot left | 16:55 |
| ← Carmivore left | 16:56 |
| → valtih joined | 16:56 |
| gitinfo set mode: +v | 16:56 |
| → Carmivore joined | 16:56 |
| ← DrHouse|TARDIS left | 16:57 |
|
valtih
| How do I commit to another branch? If I checkout then all my current changes are lost. | 16:57 |
| ← delight left | 16:57 |
|
EdwardIII
| hrm sorry for this uberdaft question - in a 3 way merge, i get 'remote' and i get 'local' - but what's 'base'? | 16:58 |
|
Mikachu
| valtih: if you 'git checkout otherbranch', then your changes are carried across if possible, otherwise nothing happens | 16:59 |
|
| valtih: if that happens, the safest way is to commit your changes, switch, cherrypick, then reset the first branch again | 16:59 |
|
jast
| EdwardIII: the most recent point after which the history of remote and local diverges | 16:59 |
|
| i.e. the last time they were merged together | 17:00 |
|
EdwardIII
| hrm | 17:02 |
| ← Araxia left | 17:02 |
| → diegoviola joined | 17:03 |
| → dreiss joined | 17:04 |
|
cbreak
| valtih: switch to an other branch and commit. | 17:05 |
| ← matthiaskrgr left | 17:05 |
|
cbreak
| EdwardIII: man git-merge-base | 17:05 |
|
gitinfo
| EdwardIII: the git-merge-base manpage is available at http://jk.gs/git-merge-base.html | 17:05 |
|
EdwardIII
| thanks! | 17:06 |
| ← vpopov left | 17:06 |
| → Araxia joined | 17:07 |
| ← simplechat left | 17:07 |
| ← aspotashev left | 17:08 |
| ← millerti left | 17:09 |
| → madewokherd joined | 17:10 |
| ← ISF_ left | 17:10 |
| → canton7 joined | 17:10 |
| ← brian_g left | 17:12 |
| ← break57382 left | 17:12 |
| → gusnan joined | 17:13 |
| → hwit joined | 17:15 |
| → vpopov joined | 17:15 |
| ← soulcake left | 17:15 |
| → soulcake joined | 17:15 |
| → akosikeno joined | 17:16 |
| → stringoO joined | 17:18 |
| → brian_g joined | 17:19 |
| ← DarkAR left | 17:19 |
| ← ericm left | 17:20 |
| → ericm joined | 17:20 |
| ← fisted left | 17:23 |
| → flavius joined | 17:24 |
|
LeMike
| how to "sync" two bare repos? major is a week old without any push and minor is up to date with lots of pushes | 17:24 |
| → antix joined | 17:24 |
|
cmn
| push or fetch | 17:26 |
|
| all repos are equal (mostly) | 17:26 |
| → winferno joined | 17:27 |
|
cmn
| but if you have one repo that hardly gets updated, are you sure you need that repo? | 17:27 |
| → kerrick joined | 17:27 |
| ← canton7 left | 17:28 |
| ← heoa left | 17:29 |
| → adamm joined | 17:29 |
| → eletuchy joined | 17:31 |
| ← stringoO left | 17:31 |
| → mjessome joined | 17:31 |
| ← winferno left | 17:32 |
| ← tewecske left | 17:33 |
| → tewecske joined | 17:33 |
| ← tewecske left | 17:34 |
| → folsto joined | 17:34 |
|
LeMike
| yee its a child-father-grand-backup | 17:34 |
| → nikuyoshi joined | 17:35 |
|
SethRobertson
| I have a weird question. You have outstanding commits, you do a `git fetch` (without recording the refs or the number of outstanding commits first) and now you want to discover if the history of @{u} (or I guess any other branch from upstream) was rewritten, how can you do so? | 17:35 |
|
| Programmaticly of course | 17:35 |
|
LeMike
| thanks cmn! push did it. | 17:36 |
| → tewecske joined | 17:36 |
|
pasky
| SethRobertson: git reflog origin/blabla? | 17:36 |
|
cmn
| I don't think git keeps reflogs for remote branches | 17:37 |
| → Fandekasp joined | 17:38 |
| ← BonQuisha left | 17:38 |
|
wereHamster
| cmn: git keeps reflogs of all refs. Hence *ref*logs | 17:38 |
|
cmn
| though I wonder if core.logallrefupdates would cause git to do so even for fetch | 17:38 |
|
wereHamster
| otherwise it wold be named 'localbranchlogs' or something like that | 17:39 |
| ← nikuyoshi left | 17:39 |
| → lacrymology joined | 17:39 |
| → BonQuisha joined | 17:39 |
| → Silowyi joined | 17:40 |
|
cmn
| true, but the manpage says "Reflog is a mechanism to record when the tip of branches are updated" | 17:40 |
| → stringoO joined | 17:40 |
| ← dorisabayon left | 17:41 |
|
wereHamster
| cmn: and I guess you have no local repository where you could have run 'git reflog origin/master' to check for yourself? | 17:41 |
| → iocor joined | 17:41 |
| → Pieter_ joined | 17:42 |
|
SethRobertson
| Reflog message: fetch: forced-update | 17:43 |
|
cmn
| origin/master doesn't show anything here, but the branches that get updates do show it | 17:43 |
|
| I think the bare repo not recording pushes threw me off about what gets logged | 17:43 |
|
wereHamster
| cmn: bare repos don't have reflogs by default | 17:44 |
|
cmn
| right, and I mixed up remotes and remote branches | 17:45 |
| → mishok13 joined | 17:46 |
|
SethRobertson
| It isn't necessarily trivial to see the list of all reflog entries for origin/* which were updated since the last fetch | 17:47 |
|
| But still, this provides enough hints for my purposes | 17:48 |
|
| thanks | 17:49 |
| ← mjessome left | 17:49 |
| → flip_digits joined | 17:50 |
| ← gusnan left | 17:52 |
| ← unreal left | 17:53 |
| → stratwine joined | 17:54 |
| ← mkg7 left | 17:54 |
| → shruggar joined | 17:54 |
| → aspotashev joined | 17:55 |
| ← sp3ctr left | 17:55 |
| → sp3ctr joined | 17:56 |
| ← adamm left | 17:56 |
| → adamm joined | 17:56 |
| → __cli joined | 17:57 |
| → unreal joined | 17:57 |
| ← mandric left | 18:00 |
| → rmillerx joined | 18:01 |
| ← eletuchy left | 18:03 |
| → edude03 joined | 18:03 |
| → kukks joined | 18:05 |
| → najam joined | 18:08 |
| → mxweas joined | 18:09 |
| ← najam left | 18:11 |
| → o_ joined | 18:12 |
| ← Fandekasp left | 18:12 |
| ← brian_g left | 18:12 |
| ← soulcake left | 18:14 |
| ← akosikeno left | 18:15 |
| ← stringoO left | 18:17 |
| ← thedeeno left | 18:24 |
| → Octalot joined | 18:26 |
| → brian_g joined | 18:28 |
| → v0n joined | 18:29 |
| → Fooker22 joined | 18:29 |
| ← Fooker22 left | 18:29 |
| ← mxweas left | 18:30 |
| → FernandoBasso joined | 18:32 |
| → gusnan joined | 18:32 |
| → diegovio1a joined | 18:32 |
| diegoviola → Guest24769 | 18:32 |
| diegovio1a → diegoviola | 18:33 |
| ← Guest24769 left | 18:33 |
| → ceej_ joined | 18:36 |
| ← EricInBNE left | 18:37 |
| ← unreal left | 18:38 |
| → unreal joined | 18:39 |
| → AmirBehzad joined | 18:40 |
| → wilmoore joined | 18:42 |
| ← cesc left | 18:42 |
| → mbj joined | 18:42 |
| → VladGh joined | 18:43 |
|
mbj
| Is it a design limitation git archive cannot do an archive based on commit-id when using --remote=$myremoterepo ? | 18:43 |
|
| Only symbolic names (refs) seem to be supported. | 18:43 |
|
wereHamster
| mbj: same limitation as in git fetch | 18:43 |
|
| same reason for the limitation... | 18:44 |
|
mbj
| wereHamster: Will consult the git fetch limitation reason documentation. Thx. | 18:44 |
|
wereHamster
| I don't think it's documented. | 18:44 |
|
mbj
| So I have to ask about the reasons :D | 18:45 |
| → dangerousdave joined | 18:45 |
|
wereHamster
| so you can't fetch arbitrary commits | 18:45 |
|
mbj
| I have a use case where I need to archive arbitary commits (btw the workspace state at a specific arbitrary commit) | 18:46 |
|
| Im not into git internals terminology, currently. | 18:47 |
|
wereHamster
| mbj: fetch, then create the archive | 18:47 |
| ← rphillips left | 18:48 |
|
mbj
| When I read the sourcecode I just realized I have to flip the remote arg in builtin/upload-archive.c | 18:48 |
| ← Samual left | 18:49 |
| → Samual joined | 18:49 |
|
mbj
| I'd like to avoid the creation of a local repository to fetch and archive. One step would be nicer. | 18:49 |
|
SethRobertson
| git was recently updated so that remote repos will refuse to create arbitrary archives, but instead only archives that have tags or branches pointing at them | 18:49 |
|
mbj
| SethRobertson: why? | 18:50 |
|
| Maybe I doing something dump here :D | 18:50 |
|
SethRobertson
| Security. There may be commits that you don't want someone to access or are old or something | 18:50 |
|
cmn
| ssh into the machine where the repo is and run archive there | 18:51 |
|
SethRobertson
| You can change where a tag points to, but you cannot change the SHA that was published in print three years ago that someone tries to get | 18:51 |
|
mbj
| cmn: would be possible, but this does not work with restricted shells like gitolite or git-shell. | 18:52 |
| tizzo-afk → tizzo | 18:52 |
|
mbj
| Maybe this behaviour should be configurable. | 18:52 |
|
SethRobertson
| Then clone (once) and archive (many times) from that clone | 18:52 |
|
mbj
| Or compile my own version. Thx for all your answers, will take your input into consideration! | 18:54 |
| → rphillips joined | 18:54 |
| ← rphillips left | 18:54 |
| → rphillips joined | 18:54 |
| → legnaleurc joined | 18:54 |
| → cesc joined | 18:55 |
| ← lacrymology left | 18:57 |
| → lacrymology joined | 18:59 |
| ← legnaleurc left | 18:59 |
| → legnaleurc joined | 19:00 |
| ← angelsl left | 19:00 |
| ← fayimora left | 19:00 |
| ← pidus left | 19:00 |
| → fayimora joined | 19:00 |
| ← kogent left | 19:00 |
|
xiong
| I'm certain this is trivial but it's new to me. I've been using git for development of my own projects with success. Now I'm trying to help a new guy learn; and I'm encouraging him to use git and github to share his work. | 19:03 |
| → wulffeld joined | 19:04 |
| ← aro left | 19:04 |
|
xiong
| So I have a local clone of his repo, for convenience; but I'm not sure whether to pull, or fetch, or what. I want to see all branches; but I don't much want to create a branch of my own. I'm just looking to see "over his shoulder". | 19:05 |
|
wereHamster
| git fetch | 19:05 |
| ChanServ set mode: +v | 19:05 |
|
wereHamster
| then you can look at origin/?? | 19:05 |
| ← snearch left | 19:05 |
| ← Octalot left | 19:05 |
|
xiong
| Yes. But still there is a local 'master' branch -- which doesn't correspond to any useful concept. | 19:06 |
|
wereHamster
| HEAD needs to point to something. | 19:06 |
|
| and if you don't care about the working tree, create a bare clone | 19:07 |
|
xiong
| I should like my HEAD to point to my student's HEAD. | 19:07 |
|
wereHamster
| clone --mirror, if you want | 19:07 |
| ← Textmode left | 19:08 |
|
xiong
| Ah. No, not bare; the purpose of cloning is so I can poke around in his tree and find mistakes or discern intent. | 19:08 |
| → avandenhoven joined | 19:08 |
| gitinfo set mode: +v | 19:09 |
| ceej_ → ceej | 19:09 |
| ← linusoleander left | 19:09 |
|
wereHamster
| then make a clone, fetch, checkout whatever you want, inspect the tree. | 19:09 |
|
| ignore the local branch master. Or use reset --hard instead of checkout. | 19:10 |
| ← rphillips left | 19:11 |
|
xiong
| Yes, that's a rational statement: Just ignore it. | 19:11 |
| → break57382 joined | 19:11 |
| → jason237 joined | 19:12 |
|
xiong
| I have been doing detached checkouts on origin/work and origin/master; which is what I want. | 19:12 |
|
wereHamster
| xiong: here's an idea: git checkout HEAD^{}; git branch -D master; | 19:12 |
| ← nixmaniack left | 19:13 |
| ← break57382 left | 19:13 |
| → break57382 joined | 19:13 |
| ← disappea_ left | 19:13 |
|
xiong
| Well, after thinking about it, I'm just going to shuffle my local 'master' down to the root of the whole tree to get it out of the way; and not worry about it. | 19:14 |
| → mxweas joined | 19:14 |
|
wereHamster
| 'down to the root of the whole tree'? what does that mean? | 19:14 |
| → mloskot joined | 19:14 |
| → LimeBlast joined | 19:15 |
|
xiong
| The root of the commit tree. The ancestor of all commits. | 19:15 |
|
| 'Initial commit.' | 19:15 |
|
wereHamster
| what would that solve? | 19:15 |
| → disappe__ joined | 19:15 |
|
xiong
| It would get it out of my way, that's all. | 19:15 |
|
shruggar
| define "in your way" | 19:16 |
| → soulcake joined | 19:16 |
|
wereHamster
| xiong: I told you how to delete master. Y U no use that solution? | 19:16 |
|
wulffeld
| Hey, I've got a problem where git archive is crashing: https://gist.github.com/1574600 - is there a way I can test git-upload-archive on the remote? | 19:17 |
|
xiong
| wereHamster, Yes well, our messages are crossing, likely because we're both doing other things -- I'm studying up on what you're saying. | 19:18 |
| → tellone joined | 19:18 |
| ← folsto left | 19:19 |
|
xiong
| shruggar, Ideally, I should see no branches at all except what my student has put there. Ideally, I should see what he sees, no more, no less. Except when I decide to change the rules and deliberately create a 'tutor' branch and do work for him. Usually, not. Let him work. | 19:19 |
| ← jceb left | 19:19 |
|
cmn
| wulffeld: it's not crashing, it's giving you an error message | 19:19 |
| ← o_ left | 19:20 |
|
wulffeld
| cmn: Okay, well, I'm none the wiser unfortunately. The ref is in the repos and I can push/pull fine. | 19:20 |
| → legnaleurc_ joined | 19:21 |
|
cmn
| what you're giving it is not a ref, it's a commit | 19:21 |
| ← legnaleurc left | 19:21 |
| ← flip_digits left | 19:21 |
|
cmn
| try with the branch name | 19:22 |
|
xiong
| Oh. Really! Well thank you wereHamster, the solution was much easier than I thought. I've been able to delete local 'master' without any fanfare. | 19:22 |
| → fl0w joined | 19:22 |
|
wulffeld
| cmn: I see. This is part of a deployment procedure that first does "git ls-remote triad:/scm/myrepos.git HEAD" that used to work fine. If I use master:site it's the same error msg. | 19:23 |
| → Octalot joined | 19:23 |
|
cmn
| it won't the the exact same one... does master exist? | 19:24 |
|
| what does HEAD:site do? | 19:24 |
| ← NiklasFiekas left | 19:24 |
| → legnaleurc joined | 19:24 |
| → dorkmafia joined | 19:25 |
| → codebeaker_ joined | 19:25 |
| ← mxweas left | 19:25 |
| ← legnaleurc_ left | 19:25 |
|
wulffeld
| cmn: http://pastebin.com/DCkbUcyL | 19:26 |
| → ensonic joined | 19:26 |
| ChanServ set mode: +v | 19:26 |
|
cmn
| oh, bugger, turns out it's actually the syntax that's wrong | 19:27 |
| → SegFaultAX joined | 19:27 |
|
wulffeld
| cmn: Oh? | 19:27 |
|
cmn
| it might work locally, but upload-archive doesn't seems to take magic pathspecs | 19:27 |
| → eijk__ joined | 19:27 |
|
wulffeld
| cmn: Worked fine when I moved the repos to another server. | 19:28 |
| → linusoleander joined | 19:28 |
|
cmn
| also with remote archive? | 19:28 |
| ← eijk_ left | 19:28 |
|
cmn
| the manpage says to give the ref as one arg and the path as a different one | 19:28 |
| → brainbox1100 joined | 19:28 |
|
wulffeld
| cmn: Yep. Like a charm. | 19:28 |
|
ensonic
| hi, where does git store the Follows/Precedes info for tags, I still have some tags in my converted repo where the tag follows itself | 19:29 |
|
cmn
| there is no such data stored | 19:29 |
|
| not explicitly, anyway, you get it by examining the DAG and where tags point | 19:29 |
|
wulffeld
| cmn: Deprecated syntax maybe? The one that works is 1.7.2.5 - the one that barfs is 1.7.8.1 (or 2) | 19:29 |
| ← Zyrkon left | 19:29 |
|
ensonic
| cmn, hmm, mybe a bug in gitk then .. | 19:30 |
| → nzee joined | 19:30 |
|
cmn
| wulffeld: shouldn't be, HEAD:site should be a valid way to get a treeish | 19:31 |
|
| might be a regression | 19:31 |
|
| ensonic: perhaps, but are you expecting? you're probably inspecting a commit, no? | 19:32 |
| ← kermit left | 19:32 |
| → kermit joined | 19:32 |
|
wulffeld
| cmn: I'll fiddle around with an older version and see if that works. Thanks a bunch for your help! | 19:32 |
|
cmn
| I'd consider it correct if it said a commit follows a tag that points to it | 19:33 |
|
ensonic
| cmn, I have a couple of tags, REL_0_1, REL_0_2, ... gitk shows them as hyperlinks and for most tags 0_2 follows 0_1 and preceeds 0_3, but for a few 0_X follows 0_X | 19:34 |
|
| cmn, this is when clicking on the commit where the tag points to | 19:35 |
| ← fl0w left | 19:36 |
|
cmn
| here clicking on a tagged commit shows a follows of the one before, so apparently you're expecting the right behaviour | 19:37 |
| ← VladGh left | 19:37 |
| ← dorkmafia left | 19:37 |
|
cmn
| it seems to behave a bit erratically | 19:38 |
|
| so yeah, it looks like a gitk bug | 19:39 |
| ← cesc left | 19:40 |
|
wulffeld
| cmn: Yup, 1.7.6.5 works for me so something changed. | 19:41 |
| → schnatta joined | 19:42 |
|
ensonic
| cmn, you see the wrong beaviour sometimes too? | 19:43 |
|
cmn
| the fields are missing in some cases | 19:43 |
|
| or blank, rather, even though for later and earlier tags it's fine | 19:44 |
|
| wulffeld: sounds like a regression | 19:44 |
|
ensonic
| cmn, I was just wondering about this, as I have converted the repo and I could still fix it as the repo is not yet shared, but if this is not explicitely stored in the repo, I can push the repo | 19:44 |
|
cmn
| that information can only be inferred, git doesn't know or care what follows what in the tags | 19:44 |
|
| the only following git has is in the history | 19:44 |
|
ensonic
| great gitk does not support --version and neither shows it in the about box :/ | 19:45 |
|
wulffeld
| cmn: I just got a mail from a guy who has the same problem. He was in here earlier and someone told him it was changed for security reasons: "git archive/fetch only supports fetching or archiving for commits referenced as tags or branches. And this all for security reasons.". | 19:46 |
| ← SamB left | 19:47 |
|
cmn
| yes, but it's still referenced by a branch, if you say HEAD:site | 19:47 |
| → crp joined | 19:47 |
|
cmn
| it was probably hardened a bit so it takes a commit instead of a tree-ish | 19:47 |
|
SethRobertson
| 1.7.8.1 "git archive" mistakenly allowed remote clients to ask for commits | 19:48 |
|
| that are not at the tip of any ref. | 19:48 |
| → mandric joined | 19:48 |
|
cmn
| but HEAD:site /is/ at the tip of a ref | 19:49 |
|
cbreak
| isn't that part of the spec? | 19:49 |
| ← brian_g left | 19:49 |
|
SethRobertson
| I was just clarifying what I said earlier, not arguing against HEAD:site | 19:49 |
|
cmn
| ok | 19:50 |
| → SamB joined | 19:50 |
| ← aspotashev left | 19:50 |
|
jast
| IIRC git archive has allowed downloading arbitrary trees if upload-archive was enabled at all | 19:50 |
| ← brainbox1100 left | 19:51 |
| → dvide joined | 19:52 |
| → aspotashev joined | 19:52 |
| ← thebignoise left | 19:52 |
|
cmn
| so the fix was probably to just take the whole arg and try to parse that as a ref | 19:53 |
| ← soulcake left | 19:53 |
| ← Destos left | 19:53 |
| → brainbox1100 joined | 19:54 |
| → DaveIngram joined | 19:54 |
| → nixmaniack joined | 19:55 |
| → Zyrkon joined | 19:56 |
| ← lonewulftp left | 19:56 |
| → NiklasFiekas joined | 19:56 |
| ← nixmaniack left | 19:56 |
| → nixmaniack joined | 19:58 |
| ← mandric left | 19:59 |
| → dorkmafia joined | 19:59 |
| → churp joined | 19:59 |
| ← fermianyon left | 20:01 |
| → crp_ joined | 20:01 |
| → xerora joined | 20:02 |
| ← AmirBehzad left | 20:02 |
| ← crp_ left | 20:03 |
|
SethRobertson
| I bet that is not true. That would have been written differently | 20:04 |
| ← crp left | 20:05 |
| ← ipalaus_ left | 20:05 |
| ← mishok13 left | 20:05 |
| ← NiklasFiekas left | 20:06 |
| → ipalaus_ joined | 20:13 |
| tizzo → tizzo-afk | 20:14 |
| → lacrymol1gy joined | 20:16 |
| ← lacrymology left | 20:17 |
| ← codebeaker_ left | 20:17 |
| ← eighty4 left | 20:17 |
| ← dreiss left | 20:18 |
| ← Octalot left | 20:18 |
| → Octalot joined | 20:19 |
| → codebeaker_ joined | 20:19 |
| ← krz left | 20:21 |
| ← Cromulent left | 20:22 |
| → snearch joined | 20:24 |
| → mjessome joined | 20:24 |
| ← codebeaker_ left | 20:25 |
| ← lacrymol1gy left | 20:26 |
| ← SegFaultAX left | 20:27 |
| ← bgerber left | 20:29 |
| → bgerber joined | 20:29 |
| ← stratwine left | 20:29 |
| ← Dynom left | 20:30 |
| → Dynom joined | 20:30 |
| ← Dynom left | 20:30 |
| ← faber left | 20:33 |
| ← aspotashev left | 20:34 |
|
cmn
| well, from the message "HEAD:site" ref doesn't exist, that's what it points to | 20:36 |
| ← matsebc left | 20:37 |
| ← v0n left | 20:37 |
| ← gavin_huang left | 20:37 |
| ← yshh left | 20:37 |
| → yshh joined | 20:38 |
| → friskd joined | 20:38 |
| ← friskd left | 20:39 |
| ← kanru left | 20:39 |
| → kanru joined | 20:40 |
| → friskd joined | 20:42 |
| ← kermit left | 20:42 |
| ← yshh left | 20:42 |
| → kermit joined | 20:42 |
| → brian_g joined | 20:42 |
| → Leemp2 joined | 20:45 |
| ← marthinal left | 20:45 |
| → NiklasFiekas joined | 20:46 |
| ← Leemp2 left | 20:47 |
| → igotnolegs joined | 20:48 |
| ← khmarbaise left | 20:49 |
| ← BonQuisha left | 20:51 |
| → Cromulent joined | 20:54 |
| ← LimeBlast left | 20:56 |
| ← mjessome left | 20:56 |
| → prince_igor76 joined | 20:59 |
| ← break57382 left | 21:00 |
| ← snearch left | 21:02 |
| ← umren left | 21:02 |
| → matsebc joined | 21:03 |
| ← prince_igor76 left | 21:03 |
| → rgk joined | 21:04 |
| → metcalfc joined | 21:05 |
| → crisp joined | 21:05 |
|
rgk
| i'm trying to configure gitweb on a gentoo box and besides copying the folder instaweb creates in the webroot, can't get it to work, im using lighttpd | 21:06 |
| ← rmillerx left | 21:08 |
| → rmillerx joined | 21:08 |
| → nowhere_man joined | 21:12 |
| → rphillips joined | 21:12 |
| ← kephas left | 21:13 |
| ← neurodrone left | 21:13 |
| → Xeross joined | 21:14 |
| → BonQuisha joined | 21:14 |
| → psoo joined | 21:14 |
| → ldlework joined | 21:14 |
| ← frogonwheels left | 21:15 |
| ← Dulak left | 21:16 |
| ← Sir_Rai left | 21:16 |
| → codeshah joined | 21:18 |
| ← Spockz left | 21:20 |
| ← wilmoore left | 21:25 |
| ← avandenhoven left | 21:26 |
| ← brian_g left | 21:26 |
| → wilmoore joined | 21:26 |
| ← siprbaum left | 21:28 |
| → siprbaum joined | 21:28 |
| ← Cromulent left | 21:30 |
| → delight joined | 21:30 |
| ← rhl left | 21:31 |
| tizzo-afk → tizzo | 21:32 |
| ← TomyLobo left | 21:33 |
| → TomyLobo2 joined | 21:33 |
| TomyLobo2 → TomyLobo | 21:33 |
| ← ManDay left | 21:36 |
| ← valtih left | 21:36 |
| tizzo → tizzo-afk | 21:38 |
|
bremner
| rgk: I run several gitweb installs on lighttpd | 21:39 |
|
| rgk: iirc, there are even howto-s | 21:40 |
|
| rgk: did you enable CGI? | 21:40 |
|
rgk
| bremner: thats what im looking for | 21:40 |
|
| yeah | 21:40 |
|
| it works when i copy the instaweb install | 21:40 |
|
| but all the guides tell me to link to the /usr/share/gitweb | 21:41 |
|
| so it stays updated | 21:41 |
| ← fir31ight left | 21:42 |
| → tomislater joined | 21:42 |
|
bremner
| I don't know what that is. It surely must depend on the OS/distro | 21:42 |
|
| here is /etc/lighttpd/conf-available/20-gitweb http://paste.debian.net/151348/ | 21:42 |
| → Spockz joined | 21:43 |
|
bremner
| that is on debian. | 21:43 |
|
rgk
| yea that looks different then what i was doing | 21:43 |
|
| thanks ill try it | 21:43 |
|
| bremner: why the $ at the end of the $HTTP["host"] value | 21:45 |
| ← whitman left | 21:46 |
| ← phaedrix left | 21:46 |
|
bremner
| it's a regular expression | 21:47 |
|
| that marks the end of the string | 21:47 |
| → nicoulaj joined | 21:48 |
| ← iocor left | 21:50 |
| ← nicoulaj left | 21:51 |
| → dv310p3r joined | 21:53 |
| ← psoo left | 21:53 |
|
iheffner
| cmn: unless you are trying to git-archive from a repository that has a HEAD (under refs/heads/ or as a file named "HEAD" at the root of the repository), "HEAD" is meaningless to git-archive. | 21:53 |
|
| sorry; not cmn.... wulffeld ^^ | 21:54 |
| → brian_g joined | 21:54 |
| → fir31ight joined | 21:55 |
|
cmn
| it does understand HEAD over file:// | 21:58 |
|
| just tried over ssh (gitolite) and git archive --remote=origin HEAD does work, w/o any HEAD under refs/heads | 22:00 |
|
rgk
| bremner: thanks forgot about that, this is what im stuck with right now which is more then i can say from before http://git.madgizmo.org/ | 22:01 |
|
| it won't pickup the /etc/conf.d/gitweb.conf though | 22:01 |
| ← sebrock left | 22:01 |
|
iheffner
| SethRobertson: looking at git commit ee27ca4a7818, it's not about being at the tip; it's about being *reachable* | 22:02 |
| → caseymcg joined | 22:03 |
| ← naee left | 22:04 |
| ← linusoleander left | 22:04 |
|
iheffner
| wulffeld: that commit also states "This also restricts some legitimate requests, too: ... 2. Sub-trees of reachable commits, like: git archive --remote=$url v1.7.7:Documentation | 22:05 |
| → riyonuk joined | 22:06 |
|
iheffner
| and cmn, "Local requests continue to use get_sha1, and are not restricted at all." | 22:06 |
|
cbreak
| alternative --remote=$url v1.7.7 -- Documentation | 22:06 |
|
cmn
| yes, I know local requests work | 22:06 |
|
| but that's not at all what we were talking about | 22:06 |
| ← bindaasomatic left | 22:06 |
|
iheffner
| cmn: no, I know. This just explains *why* local requests still work. | 22:07 |
|
cmn
| right, but archive --remote and a local archive execute two different pieces of code | 22:08 |
|
| the remote part is handled by upload-archive | 22:09 |
| ← matsebc left | 22:09 |
| → matsebc joined | 22:11 |
| ← baccenfutter left | 22:11 |
| → iocor joined | 22:12 |
| ← lonewulf` left | 22:12 |
| ← LongBeach left | 22:13 |
| → ipalaus__ joined | 22:15 |
| ← ipalaus_ left | 22:15 |
| → lonewulf` joined | 22:15 |
| → pantsman joined | 22:15 |
| ← pantsman left | 22:15 |
| → pantsman joined | 22:15 |
| → eletuchy joined | 22:17 |
| → canton7 joined | 22:18 |
| ← ThomasLocke left | 22:18 |
| ← arvind_khadri left | 22:20 |
| → Cromulent joined | 22:23 |
| ← ensonic left | 22:23 |
| → avandenhoven joined | 22:25 |
| → xsaidx joined | 22:25 |
| ← xsaidx left | 22:26 |
| → kosaidpo joined | 22:26 |
| ← kosaidpo left | 22:27 |
| → macRover joined | 22:29 |
| → neurodrone joined | 22:29 |
| ← wulffeld left | 22:29 |
| ← avandenhoven left | 22:29 |
| ← xerora left | 22:30 |
| → avandenhoven joined | 22:32 |
| → xerora joined | 22:32 |
| → mjessome joined | 22:32 |
| → arvind_khadri joined | 22:33 |
| → btanaka joined | 22:34 |
| → fisted joined | 22:35 |
| → EricInBNE joined | 22:35 |
| ← avandenhoven left | 22:36 |
| → steffo joined | 22:36 |
| ← Jackneill left | 22:37 |
| ← rendar left | 22:39 |
| ← caseymcg left | 22:41 |
| ← diegoviola left | 22:42 |
| → DarkAR joined | 22:43 |
| ← Spockz left | 22:43 |
| ← mjessome left | 22:44 |
| → frogonwheels joined | 22:45 |
| → eletuchy_ joined | 22:46 |
| → Araxia_ joined | 22:47 |
|
tgunr
| I accidently checking a huge binary into my repo a few commits back as I just discovered (490MB). How can I prune it completely out of the repo? I don't want a clone to have to deal with this huge file. | 22:47 |
|
FauxFaux
| tgunr: man git filter-branch | 22:47 |
|
gitinfo
| tgunr: the git-filter-branch manpage is available at http://jk.gs/git-filter-branch.html | 22:47 |
|
tgunr
| thanks, i couldn't recall which tool to use. | 22:48 |
|
Mikachu
| http://help.github.com/removing-sensitive-data/ | 22:49 |
|
| might be helpful too, huge or sensitive should be same deal :) | 22:49 |
| ← tomislater left | 22:49 |
| ← eletuchy left | 22:50 |
| ← Araxia left | 22:50 |
| Araxia_ → Araxia | 22:50 |
| → Goplat` joined | 22:52 |
| ← Goplat left | 22:52 |
| ← sitaram left | 22:54 |
|
tgunr
| cc | 22:54 |
| ← Sigma left | 22:54 |
| → sitaram joined | 22:56 |
| ← sitaram left | 22:56 |
| → sitaram joined | 22:56 |
| ← macRover left | 22:58 |
| → aspiers joined | 23:03 |
| ← txomon|home left | 23:05 |
|
aspiers
| hi all, is there a single git CLI command to get a directory listing similar to what is displayed here: https://github.com/git/git - in other words, filename, age, and commit message? | 23:05 |
|
| (and possibly the abbreviated commit SHA1 too) | 23:06 |
|
cmn
| no | 23:06 |
|
aspiers
| I can do it with a combination of git ls-tree and git log -1 | 23:06 |
|
| but that's ugly, and doesn't scale to large directories | 23:06 |
|
Mikachu
| git instaweb ;) | 23:07 |
|
aspiers
| Mikachu: yeah, I want it on STDOUT though :) | 23:07 |
|
| wow, that's pretty surprising if it doesn't exist | 23:07 |
| ← brian_g left | 23:07 |
|
cmn
| git instaweb & curl localhost:8080/whatever | 23:07 |
|
| it's not surprising at all | 23:08 |
|
| that information isn't stored in git | 23:08 |
|
| you need to infer it, and it's an expensive operation | 23:08 |
|
aspiers
| git log -1 is expensive? | 23:08 |
|
Mikachu
| for each file, you need to find the last file where it was changed | 23:08 |
|
cmn
| no, running log for each path is expensive | 23:08 |
| ← kermit left | 23:08 |
|
Mikachu
| last commit, rather | 23:09 |
|
cmn
| for each path you need to run git log --filter-diff=M and grab the first commit it shows | 23:09 |
|
Mikachu
| well, you don't strictly need to, but it's the most straightforward way | 23:09 |
|
cmn
| sure, you can cache | 23:09 |
|
aspiers
| I've heard this kind of argument before, from the author of git-annex | 23:09 |
|
Mikachu
| it's not an argument, it's a fact | 23:09 |
|
aspiers
| Mikachu: you misunderstand me | 23:10 |
|
cmn
| argument? | 23:10 |
|
aspiers
| let me finish | 23:10 |
|
cmn
| it's the way the git data is modeled | 23:10 |
|
Mikachu
| you're the one who stopped | 23:10 |
|
| :) | 23:10 |
|
aspiers
| I'm not talking about that | 23:10 |
|
| I'm composing the next sentence :) | 23:10 |
|
Mikachu
| nobody who wanted it wanted enough to write it, obviously | 23:11 |
|
cbreak
| most people on IRC can type really fast | 23:11 |
|
aspiers
| the argument is: "this is a polynomial-time problem, so in the worst cases, it can be extremely expensive and end up hogging CPU and/or RAM, therefore we shouldn't implement it at all" | 23:11 |
|
cbreak
| we're impatient | 23:11 |
|
aspiers
| which I strongly disagree with, because in many cases, it is very useful functionality which a modern system is *easily* capable of handling | 23:12 |
|
cmn
| it's implemented in several places, just not in git-core | 23:12 |
|
aspiers
| and if it starts grabbing CPU/RAM, then you just kill it, or set limits.conf | 23:12 |
|
cmn
| caring about indivial files isnt' very gittish | 23:12 |
|
aspiers
| the majority of repos are nowhere near big enough for it to be an issue | 23:12 |
|
Mikachu
| git ls-files | while read file; do git log -n 1 --pretty="Filename: $file, commit: %h, date: %ad" -- $file; done | cat | 23:13 |
|
| that's how slow the naive way is (stole it from stackoverflow) | 23:13 |
| ← dirkle left | 23:13 |
|
cbreak
| what does he want? | 23:14 |
| ← zxiest left | 23:14 |
|
cmn
| why is there a pipe to cat at the end? | 23:14 |
|
Mikachu
| cmn: to not open less 132 times | 23:14 |
|
aspiers
| Mikachu: I assume you mean http://stackoverflow.com/questions/223678/git-which-commit-has-this-blob which I had already read | 23:14 |
|
Mikachu
| that is incorrect | 23:14 |
|
cmn
| oh, right, because git would try to open the pager | 23:15 |
|
Mikachu
| http://stackoverflow.com/questions/5183199/how-print-last-commit-info-for-every-file-in-a-git-repository | 23:15 |
|
| well, it's correct that you assumed it, but it's not what i meant | 23:15 |
|
aspiers
| haha :) | 23:15 |
| → kermit joined | 23:15 |
|
Mikachu
| fwiw, that command has been running for 2 minutes on git.git now | 23:15 |
|
aspiers
| ahah, I couldn't find that SO question | 23:15 |
|
| but my quick hack was almost identical to that | 23:16 |
|
| ah, no | 23:16 |
|
| that's not what I asked for | 23:17 |
|
| I only want the info for a single directory | 23:17 |
|
Mikachu
| that's conceptually the same thing | 23:17 |
|
cmn
| either ls-files has flags to do that or use ls-tree | cut | 23:17 |
|
aspiers
| it does not have the same algorithmic complexity, except in the worst case where your repo only has one directory | 23:17 |
|
cmn
| it has the same complexity, it might not have the same n | 23:18 |
|
aspiers
| if you restart your git.git run on a single directory and time it, I think you will prove my point :) | 23:18 |
|
Mikachu
| git ls-tree HEAD --name-only instead of ls-files | 23:18 |
|
aspiers
| cmn: complexity depends entirely on your definition of n | 23:18 |
| → dfr|mac joined | 23:18 |
| ← canton7 left | 23:18 |
|
Mikachu
| it's obviously the same complexity | 23:18 |
|
| that's like saying truncating filenames before the letter f is a lower complexity, / isn't special in git ;) | 23:19 |
|
cmn
| n is the amount of files you want to look the info for | 23:19 |
|
aspiers
| no, n could be the number of files in the repo | 23:19 |
|
cmn
| and it runs faster because it has less work to do | 23:19 |
|
| how would that definition of n make sense? | 23:19 |
|
Mikachu
| i'm not going to argue about it | 23:19 |
|
cbreak
| Mikachu: there are much more efficient ways to implement that | 23:19 |
|
Mikachu
| there are a bunch of files in t from 2006, those are really slow to list | 23:20 |
|
aspiers
| n could also be the number of commits in the repo | 23:20 |
|
| my point is that a single-dimensional complexity analysis is not very helpful here | 23:20 |
|
cbreak
| algorithm O(n) in number of commits and O(n) in number of files | 23:21 |
|
aspiers
| because the performance is critically dependent on *multiple* characteristics of the repo and the directory in question | 23:21 |
|
| no one metric can yield a valuable predictor of run-time | 23:21 |
|
| cbreak: that's O(m.n) :-) | 23:22 |
|
Mikachu
| well, for 2147 files and 25318 commits, it is Pretty Slow | 23:22 |
|
cbreak
| Mikachu: because your algorithm is O(numcommits*numfiles) | 23:23 |
|
aspiers
| right, but for a very new directory containing 10 files, in a repo with 9629483619 commits, it might be pretty fast | 23:23 |
| ← delight left | 23:23 |
|
cmn
| or very slow | 23:23 |
|
aspiers
| cmn: how so? | 23:24 |
|
Mikachu
| sure, but that has nothing to do with algorithmic complexity | 23:24 |
|
cmn
| if one file was only ever touched in the first commit | 23:24 |
|
Mikachu
| just some of the numbers in your algorithm end up smaller if you pick only newer files | 23:24 |
|
| but it's always the same algorithm | 23:24 |
|
aspiers
| Mikachu: yeah, I'm trying to encourage this discussion back to the real world ;-) | 23:24 |
|
Mikachu
| ( git ls-files | while read file; do; git log -n 1 -- $file; done; ) 612.71s user 28.95s system 98% cpu 10:52.65 total | 23:25 |
|
aspiers
| in which this functionality would be useful in a large number of the git repos out there in the world | 23:25 |
| ← ipalaus__ left | 23:25 |
|
j416
| git ls-files | while read file; do git log -n 1 --date=iso --format="%Cblue%h%Creset %C(yellow)%an%Creset %Cgreen%ad%Creset $file %C(cyan)[%s]%Creset" -- $file; done | 23:25 |
|
Mikachu
| i don't think the colors make it faster | 23:25 |
|
j416
| it's hard to get good alignment :) | 23:25 |
|
aspiers
| lol | 23:25 |
|
j416
| lol | 23:25 |
| ← nzee left | 23:25 |
|
j416
| speed isn't an issue here | 23:25 |
|
cmn
| not even the "go faster stripes"? | 23:25 |
|
aspiers
| %Cred would definitely make it faster | 23:25 |
|
j416
| small repo | 23:25 |
|
| haha | 23:25 |
|
aspiers
| j416: that's my point exactly | 23:26 |
|
j416
| just thought I'd share it. | 23:26 |
|
cbreak
| Mikachu: your algorithm is worst case numberOfCommits*numberOfFiles, which is very slow. But you can make an algorithm that is in that case just numberOfCommits | 23:26 |
|
aspiers
| I have < 5000 files | 23:26 |
|
Mikachu
| yeah | 23:26 |
|
aspiers
| and 426 commits | 23:26 |
|
cbreak
| it's still slow | 23:26 |
|
Mikachu
| the worst case is presumably numberOfCommitsToOldestFileInSet or so :) | 23:26 |
|
| ie, for the best algorithm | 23:26 |
|
aspiers
| and the directory in question only has 23 files | 23:26 |
|
cbreak
| about as slow as running git log | 23:26 |
|
Mikachu
| but that might use a _lot_ of memory | 23:26 |
|
cbreak
| all through the end | 23:26 |
|
| Mikachu: na | 23:27 |
|
| you just have to remember the commit each file is changed in | 23:27 |
|
| so a list as long as the number of files in the newest commit is enough | 23:27 |
| ← DaveIngram left | 23:27 |
|
cbreak
| (since you want to find out when those files are modified last) | 23:27 |
|
Mikachu
| okay, yeah, only a couple of megabytes for linux.git probably | 23:28 |
|
j416
| that looks better aligned: git ls-files | while read file; do git log -n 1 --date=iso --format="%Cblue%h%Creset %Cgreen%ad%Creset %C(yellow)%an%Creset $file %C(cyan)[%s]%Creset" -- $file; done | 23:28 |
|
Mikachu
| you probably want git --no-pager log | 23:28 |
| → Destos joined | 23:28 |
|
j416
| (me?) | 23:30 |
| ← sp3ctr left | 23:30 |
| ← wilmoore left | 23:30 |
|
Mikachu
| yeah | 23:30 |
|
j416
| why? | 23:30 |
|
Mikachu
| it might open the pager for each file otherwise | 23:30 |
|
j416
| seems not | 23:30 |
|
| I set GIT_PAGER=less first, no difference | 23:30 |
|
| hm | 23:30 |
|
Mikachu
| your less probably has the --exit-if-one-screen option set | 23:30 |
|
| git has some options hardcoded if LESS_OPTIONS is not set, iirc | 23:31 |
|
j416
| does it not work for you? | 23:31 |
|
aspiers
| j416: pager issues for me here | 23:31 |
|
j416
| hm ok | 23:31 |
|
| well I was using the same thing, only colours added, as was suggested on some link above | 23:32 |
|
| j416 shrugs | 23:32 |
|
aspiers
| fixed by --no-pager | 23:32 |
|
j416
| ok :) | 23:32 |
|
| on which git? | 23:32 |
|
| git --no-pager log? | 23:32 |
|
Mikachu
| yes | 23:32 |
|
aspiers
| yup. 1.7.8.206.g71406 | 23:32 |
|
j416
| k | 23:32 |
| → mloskot_dogwalk joined | 23:32 |
|
j416
| now to figure out what to name the alias for this | 23:33 |
|
cmn
| git pretend-im-svn | 23:33 |
| ← mloskot left | 23:34 |
|
j416
| haha | 23:35 |
|
Mikachu
| git pis | 23:35 |
|
aspiers
| j416: looks pretty nice but I prefer --date=relative with it coming after the other fields | 23:35 |
|
j416
| whatever you like :) | 23:35 |
|
aspiers
| actually I just changed my mind again | 23:35 |
| ← baburdick left | 23:36 |
|
aspiers
| --date=relative is better for web pages which can actually do proper alignment and have more than 80 columns :) | 23:36 |
| → jab416171|Cloud joined | 23:36 |
|
aspiers
| --date=iso is sortable too | 23:36 |
|
j416
| "git log --stat" on git.git is significantly faster than that thing, maybe it would be easy to parse that for files against git ls-files | 23:36 |
|
| I wonder how nicely one could do it in sh | 23:36 |
| → baburdick joined | 23:36 |
|
aspiers
| j416: that's a good idea | 23:37 |
|
Mikachu
| https://git.wiki.kernel.org/articles/e/x/a/ExampleScripts_6d49.html | 23:37 |
|
| ran in 3.4 seconds for the whole git repo :) | 23:38 |
|
aspiers
| was that already there? | 23:38 |
|
Mikachu
| yes | 23:38 |
|
j416
| Mikachu: heh, yeah, that's the thought | 23:38 |
|
| cool :) | 23:38 |
| → drev1 joined | 23:39 |
|
j416
| whoa fast | 23:39 |
|
| < 2 s here | 23:39 |
| → brian_g joined | 23:39 |
|
j416
| formatting isn't very nice, though | 23:39 |
|
Mikachu
| yeah, could use some options | 23:40 |
| ← Cromulent left | 23:40 |
|
j416
| but, I don't have much need for something like this anyway, so I won't waste my time doing it. :) | 23:41 |
|
Mikachu
| incidentally in git.git it seems to take exactly the same time without the -r both in / and in some subdirs | 23:41 |
|
cbreak
| if you want to write it efficiently | 23:42 |
|
| you should analyze the output of git log --name-only | 23:42 |
|
j416
| Mikachu: I'd assume it's git log that takes time to run, not git ls-tree | 23:42 |
|
Mikachu
| j416: yeah, but the theory was that it would be faster if it didn't need to traverse the full history | 23:43 |
|
j416
| mhm | 23:43 |
|
| ok | 23:43 |
|
cbreak
| something like git log --name-only | (remember the last sha, and fill a map data structure with path->hash associations, without overwriting) | 23:44 |
| → mloskot__ joined | 23:44 |
| → storrgie joined | 23:44 |
|
cbreak
| if you want you can prepopulate the map and only fill the paths that exist in the newest commit | 23:44 |
|
| and abort when all are filled | 23:44 |
|
Mikachu
| cbreak: that's what the script does | 23:44 |
|
cbreak
| you sure? It looks like noise to me. | 23:45 |
| ← Goplat` left | 23:45 |
| → Chib joined | 23:45 |
| → the_cybersphinx joined | 23:46 |
|
Mikachu
| it seems to not be perfect, some files get printed with -1 for me | 23:46 |
|
| oh well | 23:46 |
|
aspiers
| haha, it uses 'break' instead of 'last' | 23:48 |
|
| Bareword "break" not allowed while "strict subs" in use | 23:48 |
| ← mloskot_dogwalk left | 23:48 |
|
aspiers
| perfect example of why 'use strict' should *never* *ever* be omitted | 23:48 |
| ← unmanbearpig left | 23:48 |
|
Mikachu
| i have no idea what you just said | 23:48 |
| ← cybersphinx left | 23:48 |
|
Mikachu
| break doesn't break loops in perl? | 23:49 |
|
aspiers
| nope | 23:49 |
|
Mikachu
| ah | 23:49 |
|
| that would be too easy? | 23:49 |
|
aspiers
| last | 23:49 |
|
Mikachu
| so break is just a noop? | 23:49 |
|
aspiers
| and next, not continue | 23:49 |
|
| no, break is a compile error | 23:49 |
| → fermianyon joined | 23:49 |
|
aspiers
| unless you break the golden rule | 23:49 |
|
Mikachu
| but the default mode in perl is to ignore compile errors? | 23:49 |
|
aspiers
| yes | 23:49 |
|
| and I'm not going to defend that | 23:49 |
|
Mikachu
| okay | 23:50 |
|
| i'm just asking as a perl noob | 23:50 |
|
| incidentally, vim syntax hilights break; | 23:50 |
|
aspiers
| like a keyword? | 23:50 |
|
Mikachu
| yeah, now it's faster in a subdir | 23:50 |
|
| yes | 23:50 |
|
| exactly the same color as last; | 23:50 |
|
aspiers
| oh dear | 23:51 |
| ← Morphous_ left | 23:51 |
|
Mikachu
| it's probably not a perfect script | 23:51 |
|
| given what you said, and it not finding commits for all files | 23:51 |
|
j416
| cool | 23:51 |
|
aspiers
| it's working for me | 23:51 |
|
Mikachu
| well, near the top of git.git, it has a bunch of -1 | 23:52 |
|
aspiers
| oh | 23:52 |
|
Mikachu
| which is what it inits the attribution to | 23:52 |
|
aspiers
| it mixes numeric with string | 23:52 |
|
| doh | 23:52 |
|
| should init to "" not -1 | 23:52 |
|
Mikachu
| doesn't really matter, it didn't find the commit | 23:52 |
|
| it should find commits for every file, or the file wouldn't be there :) | 23:52 |
|
aspiers
| in fact why does it even init? | 23:52 |
|
| oh I see | 23:53 |
| ← mloskot__ left | 23:53 |
| → mloskot joined | 23:53 |
| ← mloskot left | 23:53 |
| → mloskot joined | 23:53 |
| ← hwit left | 23:53 |
| ← DarkAR left | 23:53 |
|
aspiers
| why is it not finding commits for you? | 23:54 |
|
Mikachu
| how would i know? :) | 23:54 |
| ← legnaleurc left | 23:54 |
|
aspiers
| maybe a parsing bug? | 23:54 |
|
| or you think that git log isn't finding them? | 23:54 |
|
Mikachu
| when i just run git log, it seems to find them | 23:54 |
| → dreiss joined | 23:54 |
|
cbreak
| maybe there are files that are never changed. | 23:55 |
|
| does adding count as change? | 23:55 |
|
aspiers
| cbreak: they would still be in the root commit | 23:55 |
|
cbreak
| probably the case. | 23:55 |
|
Mikachu
| they're probably not in the root commit | 23:56 |
|
| it's the release notes :) | 23:56 |
|
aspiers
| hehe | 23:56 |
|
| which file exactly? | 23:56 |
|
cbreak
| maybe no one wrote them. | 23:56 |
|
aspiers
| I could try on my git.git repo | 23:56 |
|
cbreak
| or they got in via an evil merge | 23:56 |
|
| evil merges are ... not usually diffed | 23:56 |
|
| (just like normal merges) | 23:56 |
|
Mikachu
| almost all files in Documentation/RelNotes/ | 23:57 |
| → legnaleurc joined | 23:57 |
|
Mikachu
| understandably a bunch of stuff in git-gui/ | 23:57 |
|
aspiers
| ok | 23:57 |
| → ipalaus_ joined | 23:57 |
| → jdav` joined | 23:58 |
| ← d0k left | 23:59 |