IRCloggy #git 2009-10-15

Logs Search ←Prev date Next date→ Channels Documentation

Provider of IRC logs since 2005.
WARNING: As Freenode became unjoinable and lost all warnings in topics, we cannot log channels on Freenode anymore.

2009-10-15

gitte scyth: and if you think that this user interface sucks, for something that is _real_ common, then yes, I agree, but others don't.00:00
kain Ilari, at this point git status is returning that working dir is clean, and I have the latest revision of the submodule00:00
gitte mugwump: for submodules, it is not only UI.00:00
kain what should I issue, here, to make vendor/rails rewind to a specific revision?00:00
this is something I should write and remember later00:00
gitte mugwump: there was a power game going on, and somebody "won" because he provided code.00:00
Ilari kain: Are you sure you didn't check out the revision submodule already had?00:00
c15c8ra1n joined00:00
gitte mugwump: but there are valid use cases where the current internal design of submodules just sucks big time.00:01
kain Ilari, yes, I didn't touched the vendor/rails now apart importing it00:01
Ilari, the problem is that some recent commits in the submodule broke the app. now I need to rewind vendor/rails to a suitable sha00:01
gitte mugwump: we had some real life stories about that in Berlin, but that is my fear: that MV will be again a wanking session (fun, to be fair, but just that, fun, nothing serious, and nothing that really has an impact on the real world), and lack a proper user base.00:02
mugwump gitte: brief summary of that? I'm thinking a major improvement would be to be able to specify in the .gitmodules file a logical ref to checkout00:02
slabbeh left00:02
kain mugwump, idd00:02
Ilari kain: Does 'git ls-files -s vendor/rails' in supermodule list the correct SHA-1?00:02
mugwump to be fair, a lot of what was discussed eventually came about00:02
gitte mugwump: that is what was being discussed, but the index and the commits do not allow that structure.00:02
mugwump who cares?00:02
gitte mugwump: so what you record in .gitmodules just does not matter. It just does not.00:03
mugwump if when you check it out, you get 'master', does it matter what's in the commit object?00:03
kain Ilari, it shows the latest commit sha of the submodule00:03
on remote repo00:03
Ilari kain: Broken one?00:03
kain yep00:03
gitte mugwump: you cannot record "this is branch A". You can only record "this is commit A".00:03
mugwump: and yes, that matters.00:03
Ilari kain: 'git add vendor/rails' (NO TRAILING '/'!). Rerun that ls-files command, it should have changed the ID.00:04
kain Ilari, showing the same sha00:04
I already added vendor/rails00:04
antonystubbs left00:05
mugwump gitte: sure but if you could record 'on checkout, default to branch A' in .gitmodules, wouldn't that be enough?00:05
gitte mugwump: and there are other problems with the Git internals, not the least of which are shabby implementations such as "git-remote-curl".00:05
kain Ilari, http://pastie.org/65541000:05
mugwump also one other thing I think would be important would be for 'git commit' to check, if a submodule commit ID changed, that the commit is reachable from the URL given00:06
travisjeffery left00:06
gitte mugwump: it is not in the commit, it is in .gitmodules. In the commit, you _have_ to record a commit name. Of course you can work around everything. But that is lousy design.00:06
mugwump I submitted a hook for that once00:06
Ilari kain: What does 'cd vendor/rails; git rev-parse HEAD' print? The same hash as that ls-tree printed?00:06
kain Ilari, yes00:06
mugwump I don't think it's lousy at all00:06
gitte mugwump: but it is, because it only reflects _one_ view of the world.00:07
enherit left00:07
gitte mugwump: it is too inflexible, too narrow-minded.00:07
Ilari kain: Is the submodule at right (non-broken) version?00:07
mugwump I'd like to hear a description of a use case that doesn't fit with what I suggested..00:07
kain Ilari, no, it's locked to the latest hash00:08
gitte mugwump: just think multimedia files.00:08
mugwump ok, so a submodule with multimedia files in it?00:08
kain Ilari, I didn't issue anything to 'revert' the submodule to a specif sha00:08
drewolson left00:08
kain like I need to00:08
Ilari kain: 'git checkout <right-commit>', 'cd ../..', 'git add vendor/rails' (note, its add command, no submodule command involved).00:08
kain uhm00:08
Ilari, last time I tried git checkout sha git tried to create a no name branc00:09
branch*, however I'm trying again00:09
Ilari kain: That's ok.00:09
gitte mugwump: not just with multimedia files in it. With _the_ multimedia files in it, whatever that is, and the history of that submodule is not a history, but every commit you have there is an "initial" commit.00:09
mugwump: for whatever reasons, legal ones, for example.00:09
mugwump ok. yes, that kind of use case has occurred to me before00:10
kain Ilari, it indeed worked, I got the Subproject commit to the right sha00:10
Ilari kain: Well, you can create a branch to point to right commit and check that out, but there's little point to that.00:10
mugwump so I guess the problem is that you can't zip around history very easily, it will not be able to check out the bad commit IDs00:10
kain Ilari, now I'm in this situation which I don't quite understand: http://pastie.org/65541300:11
gitte mugwump: the point is: here we have no bad commit IDs.00:11
Ilari kain: Now the changes can be committed. The submodule entry will record the version you told it.00:11
kain Ilari, yes, I did this00:11
mugwump which I think is solved by specifying in .gitmodules that you want a symref, and that the commit ID in the tree only gets checked out if you specify --submodules-as-committed or something00:11
gitte mugwump: but Git is limited to what certain Open Source types think is the universe.00:11
Ilari kain: That's not a problem.00:11
kain Ilari, allright, thank you very much for your kind help00:12
jlf left00:12
mugwump sure sure, and "Science" is also limited to what certain "Scientists" think is the universe too :)(00:12
gitte mugwump: by (ab)using .gitmodules and just recording something bogus in the commit, you admit that the original design just does not catch the use case. So it is lousy.00:12
Ilari kain: If you think it looks bad, and want to make it look better (for no real techincal reason): 'git checkout -b <new-branch-name>'.00:12
kain: (in the submodule).00:12
kain yeah, thanks :)00:12
mugwump but with modifications, it might not be so lousy00:13
trigger_ left00:13
mugwump and I think the modification I suggest is very backwards compatible00:13
this is why I like the original design, I think it's actually quite flexible00:15
gitte mugwump: it is papering over a serious design flaw, trying to redesign by ignoring the original design, and making .gitmodules much more important than it was ever intended to be. Adding a leven of indirection that shows just how much an add-on it is.00:15
mugwump: sure. Git is a filesystem.00:15
mugwump that whole argument rests on the judgment of the original design as flawed00:15
gitte mugwump: that way you can lead any discussion ad absurdum.00:15
mugwump but normally when you enhance something to deal with more use cases, you don't consider the old model flawed - just incomplete00:16
c15c8ra1n left00:16
gitte mugwump: that whole argument is that there are valid use cases (that were known _before_) that the design deliberately ignored.00:16
mw left00:16
qrush_qrush00:16
travisjeffery joined00:16
gitte mugwump: the _current_ design (I am not even starting on the original one) does not _have_ .gitmodules at all.00:17
travisjeffery left00:17
gitte mugwump: so for what you propose, you do not need any submodules, you just need a patch to a Makefile.00:17
mugwump: but of course, that assumes that you use the Makefile system.00:17
mugwump: just as your proposal suggests that you use another _addon_ to Git, ignoring the original design. Because it is flawed.00:18
gambler joined00:18
mithro left00:18
c15c8ra1n joined00:18
eletuchy_ left00:19
gitte mugwump: alas, I cannot come. Work obligations...00:21
mugwump I don't understand, did the .gitmodules file get removed?00:21
it's still on the man page00:22
gitte mugwump: it is an _add-on_.00:22
mugwump: you can have repositories with submodules ("gitlinks") that have no .gitmodules file.00:23
mugwump required for 'git submodule' to do anything00:23
right00:23
ereslibre left00:23
gitte mugwump: everything that has to access said file will be slow, and not integrated into Git, because _no plumbing_ knows about it.00:23
mugwump yes, that's true.00:24
so would it help if 'cat-file' etc could resolve such references etc?00:24
gitte mugwump: so by my definition of "add-on" (or maybe even better put: "bolt-on"), this is one.00:24
patmaddox joined00:24
gitte mugwump: you can ask plumbing to resolve submodules, but only if you have that very limited view of the world that submodules need to be identified by a single commit name.00:25
mugwump: and other parts of Git are way to oblivious of submodules, e.g. push. Do you know just how many times I pushed a superproject, forgetting to push the updated submodule's commit?00:26
adam12 joined00:26
mattam left00:26
gitte mugwump: and do you know just how easy it is to lose a commit for good, just because you rebased, and the submodule has no idea that the superproject still wants to keep the now-obsolete commit?00:27
mugwump it's a lot easier than it should be00:27
gitte mugwump: submodules are really a sore point when it comes to Git. Really, they are one of the biggest shortcomings of Git, but certainly not the only ones.00:27
mugwump like I said, it should be hard to commit without commit checking that the commit exists at the url in the .gitmodules file00:27
gitte mugwump: us Gits just got too used to it, so it takes real users to tell us what sucks.00:27
ctusar left00:27
gitte mugwump: but that does not help, does it?00:28
ctusar joined00:28
gitte mugwump: it is still all too easy to _remove_ that commit retroactively!00:28
Ilari And adding any new object type is harder than what it should be because, I had to write invalid octal characters in mode to get a tree what current git versions would reject and not do insane things with.00:28
mugwump well, shit happens00:28
Ilari s/object/entry/00:28
gitte mugwump: just "git branch -d" and a few weeks later "git gc" (which is often done by default on server installations) is enough.00:28
mugwump actually there is a solution for that I think00:29
gusl left00:29
mugwump which is to allow submodules to come from the local GIT_DIR if the objects happen to exist there00:29
gitte mugwump: Git's whole right of existence is that it makes "shit happens" hard. And it usually does. But it stops cold when it comes to submodules.00:29
mugwump: git gc does not follow the gitlinks, even if they exist in the local GIT_DIR.00:30
mugwump: so you would lose just as well.00:30
mugwump right, but if you chose to do that you'd have local branches for the subcommits00:30
not all projects would want that of course00:30
gitte mugwump: it is all too easy to fall into that trap. Way too easy.00:31
Ilari (that research on how to build invalid tree object was for researching feasibility of multi-hash repos, as tree objects are the only object that has fixed-width binary fields exactly large enough for SHA-1).00:31
flazz joined00:32
gitte Anyway, getting late here, and I am only getting sadder and sadder I cannot go.00:33
Git night!00:33
gitte left00:34
mugwump waves00:34
alezandro left00:34
sitaram didn't understand *anything*, even reading the backlog, but is even more convinced that he should continue to stay away from the one part of git he has so far stayed away from :(00:36
ag90 joined00:36
rem7 joined00:37
mugwump yeah. see, I'd like to help get rid of that reputation submodules have for being nasty00:37
I mean, it's deserved, but I think reparable :)00:37
sitaram :)00:37
mithro joined00:38
rem7 I accidently merged a bramch to my master, how do I reset my master to the way it was? git reset --soft <commit> ?00:38
sitaram mugwump: just by way of background, everything I do is geared to putting git to work in enviroments where most of the users are refugees from CVS/VSS/SVN and dont want to spend too much time learning00:38
hobodave left00:39
ag90 left00:39
sitaram mugwump: so if I dont grok it well enough to *teach*, it doesnt exist :(00:39
KrynndependentKrynnowon00:39
sitaram rem7: git reset --hard ORIG_HEAD should do it, assuming you had no uncommitted changes when you did the merge. otherwise git reset --merge (in newer gits)00:39
revans joined00:40
relix left00:42
Ilari If I pastebin those remote helper extension patches (whitespace damaged), anybody wants to comment?00:43
jrmuizel joined00:43
Derander left00:44
rem7 sitaram: thanks00:44
rem7 left00:45
jrmuizel left00:47
c15c8ra1n left00:47
onigiri left00:52
jmcantrell joined00:52
scyth left00:54
sergiodj left00:55
abms1116 joined00:55
sergiodj joined00:55
flazz left00:57
tfarina left01:00
flipmoe joined01:00
pvvni left01:00
pvvni joined01:01
elliottcable left01:01
kssddy joined01:02
mre joined01:03
Lisimba left01:03
ramus`_ joined01:04
rchavik joined01:05
RurouniJones left01:07
RurouniJones joined01:08
hyperair joined01:09
bdimcheff joined01:09
VVSiz left01:09
Theravadan left01:12
lresende joined01:15
revans left01:17
ramus` left01:18
nadim left01:18
Blackshark left01:18
mtierney joined01:19
raz1146 joined01:19
raz1146 If Someone using OVI Suite And Content Copier PLEASE PME ! Thanks alot .01:19
raz1146 left01:19
raz1146 joined01:19
raz1146 If Someone using OVI Suite And Content Copier PLEASE PME ! Thanks alot .01:19
hummingkid left01:19
panpainter left01:20
mtierneypanpainter01:20
raz1146 left01:21
Lisimba joined01:23
godsflaw left01:23
justin-george joined01:23
maravillas_ left01:23
ramus`_ramus`01:23
squentin left01:24
eletuchy joined01:25
defectiv left01:26
mre left01:27
mw joined01:31
markelik_ left01:32
kennethlove left01:34
ryoma left01:35
adam12 left01:35
orafu left01:36
orafu joined01:36
_ringlej joined01:36
bugfux left01:37
carrus85 left01:37
kukks left01:38
PerStrand left01:39
justin-george left01:41
jfxberns_ joined01:42
DaveIngram left01:43
DaveIngram joined01:44
DaveIngram left01:44
jfxberns left01:47
jfxberns_jfxberns01:47
seangrove left01:50
ajonat joined01:52
hobodave joined01:55
flipmoe left01:56
jadams left01:59
alezandro joined01:59
bsdvodsky joined02:00
DaveIngram joined02:03
nick_santa joined02:06
dreiss left02:08
panpainter left02:10
blazer left02:12
altrux left02:13
blazer joined02:13
tetha left02:13
jrmuizel joined02:16
panpainter joined02:18
tetha joined02:18
s|k joined02:20
s|k is there a way to get a git status with only the files changed shown and not all that extra stuff?02:21
Ilari s|k: 'git diff --name-status', 'git diff --cached --name-status'?02:22
panpainter left02:24
s|k hrm02:24
Ilari: thanks02:24
cytrinox_ joined02:26
s|k git diff ---stat works too02:26
xenoterracide joined02:27
luke` left02:33
mw left02:33
Davey joined02:36
mw joined02:37
cytrinox left02:38
cytrinox_cytrinox02:38
upul`` joined02:39
Davey left02:41
coolcat left02:41
mw left02:42
flaguy48 left02:42
Davey joined02:43
engla left02:48
johnnyg joined02:49
johnnyg left02:49
mw joined02:50
mw left02:52
tstclair joined02:53
herenbdy joined02:54
mw joined02:54
mw left02:59
ryoma joined02:59
TMChris joined03:08
tjafk left03:08
tjafk joined03:09
abms1116 left03:10
upul`` left03:11
upul joined03:11
Krynnowonkrynnotaur03:13
ctusar left03:17
bdimcheff left03:18
elliottcable joined03:19
Sho_ left03:24
scarabx left03:27
Guest77776 left03:34
secoif joined03:36
cao joined03:36
caoGuest9718903:36
spearce left03:37
lresende_ joined03:39
lresende_ left03:39
Guest97189 left03:40
cao joined03:41
caoGuest891103:41
herenbdy left03:43
tstclair left03:43
smuf left03:46
mre joined03:46
lresende left03:47
ben_h joined03:48
jmcantrell left03:48
Davey left03:49
jfkw left03:53
scott_ joined03:56
scott_ Can I get a diff between HEAD and what is currently staged? This is different from a diff with the file itself because some of the changes are staged but some are not03:57
zwu|linker_loade left03:57
asciant joined03:58
savant joined03:58
asciant Anyone know why yum tries to install git-core, but won't install any dependencies?03:58
savant I currently use the following command to view the latest 200 commits in a repository: git --git-dir='/path/to/repo/.git/' rev-list HEAD --max-count=20003:59
How do I make it paginate, such that I start 200 commits ago03:59
scott_ asciant: sounds like a question for your distro, not git03:59
asciant hmm ok, thanks04:00
savant so for example, I can see commits 200-400 ago, instead of 1-200 ago04:00
zwu|linker_loade joined04:00
asciant left04:00
savant anyone?04:01
enoex_ left04:02
revans joined04:03
revans left04:03
mczepiel joined04:03
enoex_ joined04:04
carrus85 joined04:06
hyperair left04:08
hyperair joined04:08
defectiv joined04:10
hyperair left04:11
savant ah, --skip! thanks anyways...04:15
Guest8911 left04:15
hyperair joined04:16
cao joined04:19
caoGuest708904:20
sitaram scott_: git diff --cached04:22
scott_ sitaram: yeah I found it already. thanks though :)04:23
sitaram irc lag + human lag :)04:23
well actually only human lag :)04:23
carrus85 left04:25
jrmuizel left04:26
carrus85 joined04:26
qhoxie joined04:28
DrAk0 left04:29
Davey joined04:30
schambers left04:30
Novelocrat joined04:30
pheaver left04:30
ArdRigh joined04:31
Novelocrat Before I toss this patch at the mailing list, could someone sanity-check it? I don't really know perl, but it does indeed work: http://charm.cs.uiuc.edu/~phil/cvsserver.patch04:32
Do I need to write tests for this before it can be accepted/integrated? It should pretty clearly not degrade anything else.04:35
savant left04:36
n joined04:36
nGuest6240804:37
pvvni left04:39
pvvni joined04:39
Novelocrat Anyone interested in CVS support online at all? Should I just send to the list?04:42
jjuran Novelocrat: Consider convincing the Web server to specify Content-type: text/plain, possibly by renaming the file.04:43
Novelocrat http://charm.cs.uiuc.edu/~phil/cvsserver.txt04:45
I would of course attach the patch directly in an email04:45
jjuran Heh. I ran curl on the old URL right after you changed it. :-/04:46
Novelocrat and I just spotted a typo in there04:46
in the usage string04:46
(corrected in the posted patch)04:47
aggelidis left04:48
marvil07 joined04:48
jjuran I'm not familiar with cvsserver such that I can usefully comment.04:48
Novelocrat jjuran: are you familiar with git-shell? I took this approach of passing env vars through to cvsserver to avoid modifying git shell04:49
if modification there made more sense, I can always go back and do that04:50
loops left04:52
Novelocrat The next step in this adventure is figuring out how to get commit authorship information right through cvsserver when it will always be running under the hosting system's account04:52
I figure the otherwise-common GIT_AUTHOR and GIT_EMAIL environment variables are probably the way to go on those04:53
elliottcable left04:55
s|k left04:57
hyperair left04:58
hyperair joined05:01
wolog left05:01
jjuran Novelocrat: No, I'm not. Try asking on the mailing list for a more informed audience. :-)05:02
pheaver joined05:03
Novelocrat ok, will do. I'll send that out shortly05:03
Thanks05:03
I'm trying to make some inroads moving away from CVS in a field with many blue-beards (high-performance computing), and part of our transition plan included an agreement that we'd support commit via CVS05:04
justin-george joined05:04
Novelocrat I knew it was there, and said so, but didn't realize that there would be pain with not using system accounts for commit access05:05
priidu joined05:06
ramus`_ joined05:06
jmgit joined05:07
jjuran I toyed with cvsserver initially, but my GUI CVS client crashed trying to talk to it.05:08
tansell joined05:11
Novelocrat that's lame05:13
justin-george left05:14
wolog joined05:15
jjuran IIRC it also crashed with the (not so new) cvs to which SourceForge finally upgraded. So I was forced to switch to command-line cvs.05:16
Since I no longer had a shiny GUI app to lose, I soon switched to Git. Which besides being a much better VCS also has a much better command-line tool. :-)05:17
Bass10 left05:19
DrAk0 joined05:19
ramus` left05:19
m-takagi left05:19
ramus`_ramus`05:20
nick_santa left05:20
loops joined05:23
jceb joined05:23
marvil07 left05:25
khmarbaise joined05:26
Novelocrat left05:26
m-takagi joined05:26
khmarbaise left05:26
qmatoz joined05:27
ekontsevoy left05:29
philthno2 joined05:29
jaysern joined05:35
rgs_ joined05:38
flipmoe joined05:38
trigger1 left05:42
eno left05:43
jmgit_ joined05:44
rgs__ left05:45
enherit joined05:46
eno joined05:46
APTX|_ joined05:53
APTX| left05:55
psankar joined05:57
tuv left05:58
jmgit left05:58
defectiv left06:00
tvw joined06:01
jmgit_ left06:02
ludde joined06:03
sde_antrix joined06:06
wolog left06:07
jceb left06:07
ludde In the [msysgit? bug] CRLF in info/grafts causes parse error thread on gmane, Junio probably needs a (isspace(buf[len-1]))06:08
In the [msysgit? bug] CRLF in info/grafts causes parse error thread on gmane, Junio probably needs a while (len > 0 && isspace(buf[len-1]))06:08
the len > 0 is missing06:08
schmukkk left06:09
roop joined06:09
doener ludde: hm, why aren't you replying to that mail instead? ;-)06:11
ludde: it's an open list, no need to subscribe06:11
ludde doener: I don't know how to do that... I don't want to subscribe to the mailing list, i just wanna read it on the gmane.org site06:11
hm06:11
DrAk0 left06:12
ludde given this url, what steps do i need to make to post to the thread? http://article.gmane.org/gmane.comp.version-control.git/13032106:12
ah06:13
there's the post thing at the upper right corner06:13
gitster Thanks, I already heard you.06:14
ludde gitster: hi junio, ok06:14
gitster With "while (len && isspace(buf[len-1]))" fix, does it work for you?06:14
doener ah, sorry, didn't expect you to be around06:14
ludde gitster: yes06:15
gitster I am usually not ;-).06:15
mremre|away06:15
Guest62408 left06:15
Azeroth-Work left06:15
ludde gitster: (not too familiar with git, i assume isspace has been redefined to point to a char-safe version?)06:15
gitster ludde: thanks. I'll send a v2 and you can probably send a Tested-by:06:15
Grahack joined06:15
aggelidis joined06:16
ludde looks like it: #define isspace(x) sane_istest(x,GIT_SPACE)06:16
gitster yes, our isspace() is sane.06:16
linkinus left06:17
Grahack left06:17
mre|awaymre06:17
mre left06:18
carrus85 left06:19
doener *LOL*06:21
doener just read the commit message for the original "detached HEAD" commit06:21
doener it already said that requiring "checkout -f" to leave a detached HEAD might be an option, but an inconvenient one06:22
johan-s_ joined06:28
johan-s left06:28
pheaver left06:31
sprasanna joined06:32
cilly joined06:33
seangrove joined06:34
hakunin left06:41
hakunin joined06:42
justin-george joined06:43
johan-s_ left06:44
schmukkk joined06:49
struberg joined06:49
mastro joined06:53
eean joined06:53
c15c8ra1n joined06:54
EricInBNE left06:56
elliottcable joined06:57
ludde is there a way to make a git repo append only, meaning that I can use it as a backup, instead of needing to use continous backups?06:59
c15c8ra1n left07:01
ludde i guess the biggest issue is that refs is not version controlled?07:01
cehteh git is not really well suited for backups07:01
you can make refs append only, but it doesnt store metadata well and you cant easily shallow history07:02
chamo joined07:02
chamo hello all07:02
Arrowmaster theres a config setting to disable deleting branches and you can use a hook to disable non fastforward pushes (one of the example hooks does that)07:02
cehteh metadata as in file permissions/owner/groups/extended attributes/acls ...07:02
Arrowmaster: there is also a mode forbiding non fast forward pushes07:03
s/mode/config/07:03
ludde if git could someone keep a history of all changes to refs and take that into account when garbage collection, it would probably work, no?07:03
chamo we have a repo, I added some images files on it, and when I do a "git pull", I get and error : Entry 'x' would be overwritten by merge. Cannot merge.07:03
What can I do ???07:03
ludde someone=somehow07:03
cehteh chamo: you edited this images?07:03
romfert joined07:04
ludde hmm logs/HEAD07:04
is that a history?07:04
cehteh nope that are reflogs07:04
they get cleaned07:04
chamo cehteh: no :(07:05
ludde cehteh: what if i turn off the reflog cleaning?07:05
cehteh chamo: maybe some tool did, for example inkscape writes to files even if you just vew them (printer settings, zoom level, coords where you look at)07:05
chamo how can I resolve the merge on this binary file, that I did not even edit07:05
mastro how can I ask git if a file is tracked or not?07:06
chamo so I tried to remove the file and get it again07:06
but not workin07:06
cehteh chamo: you can reset this files07:06
git reset HEAD -- foo.jpg07:06
chamo cehteh: how ?07:06
okay07:06
cehteh err checkout07:06
chamo i tried it07:06
...07:06
cehteh git checkout HEAD -- foo.jpg07:06
git status tell you?07:07
ludde: git is just not a proper backup tool07:07
to some extent you can use it for that, but there will always be some dark corners07:07
ixti joined07:07
cehteh its bad at managing binary content too07:08
mastro cehteh: it's a versioning tool not a backup tool07:08
cehteh well ludde wants to use it as backup tool :)07:09
ludde versioning is typically a superset of backup when all things in it are versioned07:09
cehteh not exactly07:09
Axius joined07:10
ludde for svn and hg it's true, anyway07:10
chamo got it07:10
I removed the whole directory07:10
and fetch'ed it again07:10
damn07:10
thanks cehteh07:10
cehteh ludde: i doubt that07:11
markelikalderon joined07:11
cehteh can svn/hg store special files such as device nodes, do they store complete metadata of the file?07:11
Arrowmaster whats wrong with just disabling deleting of branches and non fastforward merges?07:12
cehteh git doesnt even store empty directories07:12
ludde cehteh: device nodes? i don't have device nodes in my source code tree07:12
cehteh for backup purposes07:12
not for source control07:12
ludde cehteh: i'm talking about source code backup not system level backup07:12
enherit left07:12
cehteh ah ok07:12
then i got you completely wrong07:12
ludde yeah :)07:12
with the current git, it seems like the sysadmins needs to do continous backups of the git repo instead of just always keeping the latest version like we did with svn07:13
i mean07:13
Fikeis joined07:13
ludde maybe my wording is incorrect, but we don't want to keep multiple backups just the latest one07:13
cehteh why that?07:14
ludde less work07:14
Akufen left07:14
Arrowmaster every clone is a backup07:14
cehteh i dont get you07:14
mastro ludde: actually width git it could mean more work to keep just the latest one07:14
ludde if someone pushes a delete of a branch to the main repo then that branch is lost forever07:14
Arrowmaster you can disable that07:15
like ive been telling you07:15
ludde but then you get dead branches lying around..07:15
mastro O_o do you delete branches everyday?07:15
ludde if i could get the reflogs to never expire, then the old branch heads would be in there.07:16
Arrowmaster why are you even pushing those branches to your main repo then?07:16
cehteh why do you want to keep reflogs?07:16
ludde cehteh: to make sure git never garbage collects my history07:16
galderz joined07:16
cehteh history is in the braches/heads07:16
well 'commited' history only07:17
while reflogs also keep some other actions07:17
ludde if someone writes a book and then destroys it, that book is still history even though it's no more... that is not the case with git.07:17
engla joined07:17
cehteh i guess big reflogs can become slow07:17
Arrowmaster if somebody writes a book then goes back in time and destroys it, it doesnt exist07:18
ludde sometimes when lots of changes happened to trunk we tend to just copy that to the testing branch rather than merging.. would that be possible with git's way of disabling branch deletion?07:18
(in git terms, i guess what we really do is to delete the branch and make a new branch with the same name pointing at a different ref)07:19
cehteh means resetting master to some new history?07:19
thats something you should not do in git07:19
but if you do, you are fine with making a tag on the old master, thats certainly better than keeping reflogs07:19
ludde we do that with svn all the time.. but that could be attributed to svn's lack of easy-to-use merges07:19
Arrowmaster yeah it is07:20
mastro ludde: it seems to me that you are trying to use git as you was using svn.. which is the wrong way, would you try to drive a plane as you drive your car?07:20
cehteh yes, in git you should rather merge07:20
Arrowmaster everything you know about version control with svn you should just forget07:20
secoif left07:20
ludde mastro: if you're not sure how to do something you tend to start with what you're used to and adapt that07:20
Arrowmaster ludde: dont, it will only make things a lot worse07:20
mastro ludde: sure :) and I made the same mistake a while ago :)07:21
ludde: you should rely on merging and/or rebasing07:21
engla left07:21
mastro ludde: not "copying"07:21
cehteh well there might be few reasons to reestablish master and start anew from a rebase or whatever07:21
ludde is it possible for someone to push an arbitrary change to the head to my repo?07:21
johan-s joined07:22
Arrowmaster if you give them access to the repo yes07:22
ludde like, a git reset --hard master~1000 (or however you type)07:22
yaotti_ left07:22
bentob0x joined07:22
ludde Arrowmaster: so being able to push things basically means an evil guy could reset head to 1000 revisions back?07:23
mastro ludde: are you talking of pushing to a remote repo or resetting a local copy? reset works on the local copy and doesn NOT change the remote07:23
Arrowmaster ludde: yes unless you disable non fastforward merges07:23
er07:23
pushes07:23
cehteh ludde: there is a config to disable non fast-forward pushes07:23
ludde ok07:23
cehteh http://lumiera.org/.git/config07:23
ludde thanks07:23
cehteh also for disableing deleting branches07:24
ph^ joined07:24
qhoxie left07:24
cehteh forgot that name07:24
mastro ludde: but I don't see the point... if you trust someone give him access, if you don't let him out and don'w worry about people messing your repo07:24
Arrowmaster but sometimes you want to be able to do non fast-forward pushes, the official git repo rewrites the history of the branches other than master when theres a new release07:24
ludde mastro: I trust the people but it's easy to make mistakes07:24
cedricv joined07:24
mastro ludde: make mistake of that kind is NOT easy07:24
ludde well people tend to try weird things when they don't know what they're doing07:25
mastro ludde: you should... git reset --hard HEAD~1000 your LOCAL repo...07:25
ludde: then you had to do a remote push07:25
Arrowmaster ludde: and as i said before every clone is a backup so anybody that pulled from the repo before something like that happened could give you the commits needed to fix it07:25
ludde Arrowmaster: yeah07:25
Arrowmaster and its impossible to make a mistake like that on accident07:25
you have to force the push07:26
mastro exactly07:26
Arrowmaster if somebody does that on accident they are not trustworthy07:26
cehteh as i saied earlier, in doubt tag the old master07:26
prolly even good practice anyways07:26
elliottcable left07:27
Arrowmaster if you give access to people that click the popups saying their computer might be infected with a virus then yeah theres a chance bad things will happen07:27
flipmoe left07:30
zalun|eeezalun07:30
cedric_ joined07:31
dpino joined07:32
elliottcable joined07:32
EricInBNE joined07:32
maattd left07:34
tbf joined07:37
mczepiel left07:38
agenteo left07:40
solistic joined07:42
wolog joined07:44
cedricv left07:44
solistic My companies guidelines require me to add a specific fixed prefix to each commit message. Is there a way to prepend a prefix to git commit messages, before the editor is invoked on them?07:44
DrNick there's the commit.template config option and the prepare-commit-msg hook07:46
_ringlej left07:47
ciskje joined07:47
DrNick you could also work up a commit-msg hook which verifies that the prefix is present07:47
solistic DrNick: Thx for the pointers, I'll educate me07:47
DrNick: Ah, good idea07:48
madmoose joined07:51
tomgraham joined07:52
markelikalderon left07:52
Axius left07:53
solistic DrNick: PREPARE-COMMIT-MSG is the way to go, I guess.07:54
schmukkk left07:54
gunmuc joined07:55
rolfb joined07:55
philthno2 left07:58
travisjeffery joined08:00
PointMan joined08:01
seangrove left08:03
psoo joined08:03
d0k joined08:05
seangrove joined08:06
krawek left08:10
aigon joined08:12
shruggar joined08:12
cedricv joined08:13
mattayers joined08:17
cedric_ left08:17
mattayers Hello!08:17
augustl joined08:18
augustl is there an equivalent of git reset --hard HEAD^ to go one step forward in the history?08:18
wagle left08:18
sitaram augustl: strictly speaking, not possible08:18
teuf augustl: if you know the sha1 of the "next" commit, you can use git reset --hard <SHA1>08:18
kardan| joined08:19
sitaram teuf: and the reflog will often tell you what that sha might be, if you know what to look for08:19
augustl: ^08:19
augustl so something like git reset --hard $(reflog-magic to find sha here) ?08:19
sitaram (sorry!)08:19
yes08:20
the most useful I have seen is: 'git reflog show --date=relative HEAD'08:20
teuf sitaram: I suck at parsing reflogs :(08:20
:p08:20
sitaram substitute branchname for HEAD if you like08:20
teuf: I used to... but its worth doing it a few times when you dont need it08:20
cedric_ joined08:22
augustl thanks ppl :)08:23
ajonat left08:25
tjogin joined08:25
justin-george left08:25
travisjeffery left08:26
cedric__ joined08:26
cedricv left08:26
Thell left08:28
wagle joined08:29
ryoma left08:29
ArdRigh left08:32
Arrowmaster augustl: im not sure but i think HEAD{1} is one previous entry in the reflog08:33
charon HEAD@{1}08:35
Arrowmaster almost had it08:35
rolfb what is the definition of "reflog" ?08:37
zwu|linker_loadezwu08:37
rolfb doh08:37
ref log08:37
slooooooow catch08:37
tono joined08:44
cedric_ left08:44
a-atwood joined08:45
Fullmoon left08:45
Pistahh left08:45
Pistahh joined08:46
dwmw2_gonedwmw208:46
sitaram rolfb: rofl :)08:47
cedric_ joined08:47
rolfb re-flog didn't make any sense!08:47
:)08:47
sitaram yeah because we didn't flog the first time :)08:47
frede joined08:48
rolfb there is not enough floggin08:48
sitaram rolfb: did you know there's a git command called rerere?08:48
seangrove left08:48
rolfb no, neither did I know the meaning of flog08:48
which i do now08:48
and realize its bad taste to request more flogging08:48
:P08:48
seangrove joined08:49
doener unless it's about a dead horse. That gets you into management ;-)08:49
rolfb i'm already management :/08:49
(running my own company)08:49
:p08:49
sitaram rolfb: well if you're the only employee you'd have to hate yourself :) I hope you have others to do that for you!08:50
rolfb i have08:52
but we are trying to be all equals08:52
so we don't hate as much as we love08:52
:P08:52
sitaram aah that's nice :)08:53
fujin left08:54
rolfb :)08:54
we just had a laugh about the ref log vs re flog08:54
:)08:55
augustl left08:55
patmaddox left08:55
sitaram yeah you can flog your employees too I guess! [figuratively, not literally]08:56
elliottcable left08:57
rraasch joined08:57
jfxberns left09:02
seangrove left09:03
cedric__ left09:03
cedric__ joined09:04
relix joined09:11
malumalu joined09:12
elliottcable joined09:18
aigon left09:19
cedric_ left09:20
WALoeIII left09:24
lucsky joined09:27
lucsky 'morning09:28
aggelidis left09:29
gunmuc left09:33
cilly left09:35
ben_h left09:40
gunmuc joined09:41
marc_m left09:42
parasti joined09:48
jinzhu joined09:54
yaotti joined09:54
jinzhu left09:55
jinzhu joined09:57
khaase joined09:58
cedricv joined09:58
twp joined10:00
twp hi all -- i'm having a problem cloning a remote repository containing large binary files10:01
git-remote-pack is dieing: remote: fatal: Out of memory? mmap failed: Cannot allocate memory10:01
bentob0x the remote shows me a branch that doesn't exist anymore, I have the feeling my local repository has some references to branches that don't exist anymore and those references need to be updated/deleted, how can I do this?10:02
twp cloning then dies with the error fatal: git-upload-pack: aborting due to possible repository corruption on the remote side.10:02
is there any way i can stop git from trying to pack objects when cloning?10:03
sitaram bentob0x: git remote prune remotename10:03
ramus` left10:04
bentob0x that worked like a charm, thx sitaram10:06
jjuran twp: I don't know, but I'm guessing there's a config option for that.10:10
twp jjuran: thanks, i've already got "*.gz -crlf -diff -merge" in my .gitattributes, i couldn't find any attribute that like "dont-try-to-pack"10:12
do you know where else such a config option could be set?10:12
NET||abuse joined10:14
Leftblank joined10:15
cedric__ left10:16
koltroll joined10:16
jjuran twp: man git-config10:16
Gitbot twp: the git-config manpage can be found at http://git.or.cz/man/git-config10:16
jjuran Search for 'pack'.10:16
twp jjuran: thanks! looks very promising10:17
jjuran twp: core.packedGitLimit might be what you want.10:18
Or possibly core.packedGitWindowSize.10:18
cedric_ joined10:18
stamina joined10:19
Ilari AFAIK, won't help with large binary files as mappings are not backed by memory but by file (unlike anonymous mappings and heap).10:20
twp: Maybe add -delta ?10:21
twp: And info/attributes could work better for such attribute than .gitattributes10:21
twp thanks, testing "-delta" now10:21
intripoon joined10:23
cedricv left10:23
alienbrain joined10:24
Ilari twp: Of course, unversioned attributes only affect the repository they are in.10:24
Tachycek joined10:25
Alpounet left10:25
Tachycek left10:25
twp Ilari: by "unversioned attributes only affect the repository they are in" do you mean that i have to commit the .gitattributes on the master?10:25
vinse left10:26
blazer left10:28
Ilari twp: I meant that info/attributes is not copied between repositories. And only attributes on source end can affect pack generation.10:28
twp Ilari: ok, thanks, so if I configure it correctly on the master it should take effect when the repo is cloned?10:29
Ilari twp: And IDK wheither any .gitattributes file affects pack generation. info/attributes does.10:29
twp: And that might be problematic as info/attributes is repository-local. It is not cloned.10:30
twp Ilari: ok thanks10:31
Ilari twp: Git is just not good at big files...10:31
capndiesel joined10:31
chamo what's big for u?10:31
more than 10 MB ? more than 100 MB ?10:31
twp the binary files are tarballs/rpms from 3rd parties, largest is about 512MB, git server has 2GB RAM10:32
tjogintjogin|away10:33
twp i don't mind git being slow and inefficient on large binary files, but failing completely is rather annoying :-(10:33
selckin it doesn't really fit in the git model10:33
ashH left10:33
twp selckin: that's a shame, because git is so nice (github.com/twpayne)10:34
ashH joined10:35
twp i think what git needs here is a little "--dont-try-to-be-too-clever" switch :-)10:35
selckin or --dont-be-silly-and-store-gigs-of-binary10:35
twp i think my use case is valid10:35
transplant joined10:36
twp it's a RPM repository: I stored the .spec files and the source tarballs needed to build all the RPMS10:36
UVSoft joined10:36
UVSoft hi10:36
selckin thats just silly10:36
not something i would ever use git for10:37
twp selckin: what would you recommend instead?10:37
selckin tarballs can be fetched as needed?10:37
twp not really: unfortunately rpmbuild does not download them automatically, and of course sometimes the source website disappears10:38
transplant well, git in loose non-packed repo might be good enought10:38
UVSoft sitaramc, are you here?10:38
selckin so keep your own mirror, and a wrapper script that fetches them maybe, but keep tarball history in git, and having it pull it on every clone for someone who wants to edit the .spec files is rather icky10:39
sitaram yup; missed you in the morning (I was asleep -- I live in India!)10:39
solistic left10:39
struberg left10:39
sitaram tried to reply to your pm, didnt happen10:39
UVSoft: ^10:39
UVSoft sitaramc, thanks, gitolite is wonderful!10:39
sitaram :)10:39
shruggar twp: use something like svn, which is designed with binaries in mind10:39
twp transplant: that sounds good, how to i configure git to use loose packing?10:39
broonie sitaram: You need to be authenticated with nickserv for /msg10:39
sitaram broonie: he was offline :)10:40
UVSoft sitaramc, btw can one user have several keys?10:40
transplant twp, that i do not know10:40
twp ok, thanks all for your help, i'll do a bit more research10:40
transplant i am curious as well10:40
sitaram UVSoft: yes; its explained in http://github.com/sitaramc/gitolite/blob/pu/doc/3-faq-tips-etc.mkd -- the section on "onse user many keys"10:40
shruggar twp: or wait 10 or so years for git to embrace shallowness a bit more :)10:40
selckin twp: a year from now you'll still be downloading all the sources from versions you odn't care about anymore10:40
mmw joined10:40
sitaram one*10:40
mmw left10:41
selckin twp: and the git repo willl be huge10:41
twp i used svn for several years and don't really want to go back to it10:41
UVSoft sitaramc, ohh i missed that, thanks)10:41
sitaram you're welcome!10:41
selckin twp: use git for .spec files, figure out another way to handle your tarballs10:41
shruggar twp: if you're dealing with large binaries, git is not a good solution.10:41
twp selckin: i don't really care if the repo is huge, disk space is so cheap these days10:41
sitaram UVSoft: I write more docs than code, so it's easy to miss stuff :)10:41
Spark joined10:41
rsv joined10:42
selckin twp: up to you, but you'll regret it :)10:42
transplant if he *is* going to keep the tarballs anyway, git in loose repo won't be any worse10:42
shruggar twp: clones will also grab a bunch of useless information. Why download 600GB when you could just as easily download 500MB?10:42
rsv how to create a git tag?10:42
twp shruggar: there are few clones, I'm just using git to share the repo between 32-bit and 64-bit build machines10:43
UVSoft sitaramc, i'm gonna recomment all friends of mine to use your gitolite) i'm positive thay will be so happy! really great tool10:43
sitaram UVSoft: thanks -- you made my day!10:43
shruggar twp: when it's potentially hundreds-of-gigabytes involved, I'd point out that the difference between "few" and "none" is "a lot"10:43
zoniq joined10:44
twp shruggar: the actual size is about ~3GB, it will maybe grow by ~1GB per year10:44
shruggar: also, the large binaries do not change, although old ones get occasionally "git rm"'d10:45
UVSoft left10:45
shruggar twp: what would make me happiest is if you patch git so that it can handle your situation sanely, because recently we've started checking .psd's into our svn repos and it's making my clones grow a lot faster than they used to ;)10:46
Fullmoon joined10:47
mastro is there a way to make git delete all untracked/not-ignored files?10:48
shruggar mastro, "git clean"10:48
mastro shruggar: i'll read the manual, tnx10:49
shruggar which is another to add to the list of "can't go back from it" functions from yesterday :)10:49
twp shruggar: will have a poke around, i see that there is a --upload-pack option to git-clone that may provide a suitable hook for a "null" pack command10:49
transplant left10:49
nick_fn left10:50
shruggar and I'd say quite a good example of one which /shouldn't/ transparently index things so that there is a way to "get back"10:50
rsv sitaramc: what is gitolight?10:52
mastro and is there a command to list all untracked files in a "plain format"? (I want to add all untracked files to my .gitignore)10:52
sitaram rsv: http://github.com/sitaramc/gitolite will tell you -- in the "what" section :)10:53
thiago_home joined10:53
sitaram rsv: just scroll down a bit to see it10:53
rsv yeah, thank you10:53
sitaram rsv: (basically access control for multiple repos/users)10:53
Yuuhi`` joined10:54
rsv we do that here, we have mutiple repos using a single git daemon10:54
but access control is same for all10:54
wolog left10:54
rsv sitaram: good, you are doing good work, you inspire me to do something for opensource10:56
sitaram rsv: ouch...! big words man :)10:56
rsv: but thanks :)10:56
rsv is this part of your work?10:56
or is this the only work you do at office?10:57
sitaram rsv: however, if *I* am your example of doing good work, you ain't seen nothing yet -- there are so many who do 1000x more than me :)10:57
rsv yes, i know10:57
sitaram rsv: I do a lot more at work :)10:57
rsv sometimes i feel bad about it10:57
that i am not able to do like that10:57
Ilari twp: Or expand the tarballs in repository (maybe with tempate file to get bit-to-bit identical copy back). That should cut the size of largest file.10:58
twp: Ah, but they are .gz's. Getting those back bit-exact is nastier.10:59
twp Ilairi: yeah, there's a mix of .tar.gzs, .tar.bz2s, and even a few .zips10:59
Ilari twp: Is it requirement to get compressed files back bit-exact? Or would equivalent files be enough?11:00
twp equivalent is probably sufficient, but bit-exact would be safer11:00
mastro I tried this: "git ls-files --others --exclude-standard" but it does NOT do what I want.. if there is a new directory (untracked directory) I want to have the path of the untracked directory not the path of all the files inside it11:01
twp I could split the files in to chunks and re-join them easily with a few scrips11:01
Ilari: this way the largest file that git would ever have to handle could be easily limited11:02
jinzhu left11:02
Ilari twp: In this case "equivalent file" with .tar.gz's and .tar.bz2's would mean stream which when unpacked produces bit-to-bit identical tar.11:02
mastro ah... I missed the --directory option :)11:02
roop left11:02
vals_ joined11:03
Ilari adds new one to typos list...11:04
twp Ilari: sorry RL problem, afk for a short time11:04
JasonWoof left11:05
yaotti left11:05
pilif|awaypilif11:07
khaase left11:08
MisterN joined11:08
pilifpilif|away11:08
Yuuhi` left11:10
pilif|awaypilif11:11
tbf btw, what's the reason for having tags __and__ branches?11:12
wouldn't branches be sufficient?11:12
ph^ left11:13
Ilari tbf: Signing stuff. And tags tend to be fixed and branches move forward...11:13
ph^ joined11:13
shruggar tbf: from a technical standpoint, yes, but from a conceptual standpoint it's nice to have a name which is _guaranteed_ to not change. tags can also be digitally signed11:13
cilly joined11:14
shruggar tbf: from a purely technical standpoint, both tags and branches are unnecessary and we could all work off commit-id's, too ;)11:14
tbf shruggar: now what naming convention do you use for branches if you have to create a hotfix release on top of a branch?11:16
brizly1 left11:16
brizly joined11:16
yaotti joined11:16
rsv left11:17
spaceonline joined11:17
shruggar tbf: no idea what you mean by "hotfix release", is there another term for it? bugfixes applied to a "stable" branch, maybe?11:17
tango_ left11:18
Pewpewarrows left11:19
tbf shruggar: well, let me explain our integration process: 1) we tag a release 2) pre integration build bots pick it up 3) pre integration testers check it 4) when approved the release is send to system integration where there are additional automatic sanity checks11:20
development moves on after step 1.11:20
if now testers find minor stuff in step 3, i need to create some "hotfix" release on top of the tag created in 111:21
cann't just apply the fixes to master as there are new fixes and testers the entire process would have to restart11:21
malumalu left11:21
Mikachu you can checkout the tag, fix the bug, commit, tag the new commit, push out the new tag11:22
shruggar tbf: I wouldn't have bothered "tagging the release" until it was done. I'd make a branch at that point, called something like "pre-3.0", and tag 3.0 when that was declared fit11:23
tbf shruggar: the build bot only starts when it sees a tag11:23
Mikachu or call the pre-test tag something like 3.0_rc111:23
shruggar tbf: then, yeah, what Mikachu said. Tag it as "release candidate", and tag each release candidate which is ready for automated testing11:24
tbf Mikachu: well, then i'd have to care creating the proper release tag when the image finally is sent do SI, which usually happens behind my back11:24
Mikachu that's not really my problem ;)11:25
tbf Mikachu: i only get bothered in the 1 out of 100 cases when the initial tag was wrong11:25
Mikachu either you call the first tag _rc1 and then make the release tag when it passes testing11:25
or you call it 3.0 and then when it fails you have to call the new one 3.0-oops111:25
tbf hmm. guess i'll just call the hotfix branches "milestone/version/fixes"11:26
philthno2 joined11:26
Mikachu or you can revisit your build bot scripts11:26
jfkw joined11:26
flaguy48 joined11:29
ntoll joined11:29
ab3 left11:30
malumalu joined11:30
wolog joined11:31
VVSiz joined11:35
hobodave left11:35
mithro left11:36
marc_m joined11:36
DaveIngram left11:37
marc_mmarc_kdab11:37
warthog9 left11:38
kupsch left11:38
lfranchi left11:38
cxreg left11:38
dna left11:38
jefferai left11:38
sitaram left11:38
FreakGuard left11:38
BeerSerc left11:38
dionoea left11:38
tchan left11:38
Pieter left11:38
no_maam left11:38
Thumper_ left11:38
ice799 left11:38
tonyj_ left11:38
tokkee left11:38
docgnome left11:38
jettero left11:38
lfranchi joined11:38
jefferai joined11:39
Pieter joined11:40
tonyj joined11:40
dionoea_ joined11:40
warthog9 joined11:40
kupsch joined11:40
cxreg joined11:40
dna joined11:40
FreakGuard joined11:40
sitaram joined11:40
BeerSerc joined11:40
jettero joined11:40
tokkee joined11:40
tonyj_ joined11:40
docgnome joined11:40
dionoea joined11:40
ice799 joined11:40
Thumper_ joined11:40
tchan joined11:40
no_maam joined11:40
no_maam_ joined11:40
dionoea left11:40
tokkee left11:40
tokkee joined11:40
Thumper__ joined11:40
ice799 left11:40
jettero_ joined11:40
sitaram_ joined11:40
cxreg left11:41
FreakGuard left11:41
cxreg joined11:41
tchan1 joined11:41
ice799 joined11:41
tchan left11:41
jettero left11:41
JonasG joined11:41
tonyj_ left11:41
kupsch left11:41
no_maam left11:42
Thumper_ left11:42
kupsch joined11:42
ludde if I have a totally empty repo made with gitosis, located on my server, how do I get my dev machine to clone from it?11:42
Thumper__Thumper_11:42
FreakGuard joined11:42
ludde the problem is that i can't clone from an empty repo11:42
Ilari ludde: You need very receent version of gitosis plus recent version of git.11:42
ludde: Otherwise, you need to push to it first.11:42
ludde how do i setup my working copy to think it's associated with the gitosis repo without actually cloning from it?11:43
charon git remote add origin $url11:44
m-takagi left11:44
Sonderblade left11:44
Sonderblade_ joined11:44
yaotti left11:45
Ilari ludde: Neither clone nore git remote add associate repo with another. Its shorthand name for another repository for operations that can designate other repos.11:45
ludde: (plus namespace for remote tracking branches)11:45
mcella joined11:46
ludde Ilari: when i push after having done git remote add origin it complains about11:47
No refs in common and none specified; doing nothing.11:47
Perhaps you should specify a branch such as 'master'.11:47
Ilari ludde: Well, specify what branches you want to push (the first non-option argument is repository designation, the rest are what to push).11:48
charon well then, perhaps you should specify a branch such as 'master'.11:48
ludde ok11:49
jast ludde: whenever you push a new branch you need to name it explicitly (git push <remote> <branch>); by default push only updates branches that exist on both sides11:49
multani0 left11:50
ludde aha11:50
charon i think this conversation somehow constitutes an argument in the whole warn vs. prohibit debate, i'm just not sure on which side yet11:51
twp Ilari: thanks for your help earlier, you've given me a several promising ideas, gotta go now11:51
twp left11:51
ludde it seems to work now, thanks11:51
it would have been more helpful if the error message said 'perhaps you mean git push origin master'11:52
romfert left11:52
multani joined11:53
ludde Ilari: how does a recent gitosis and a recent git solve the issue?11:53
Ilari ludde: Receint git lets to clone empty repos and recent gitosis creates repos on read (otherwise you would get can't chdir error).11:54
vals_tango_11:54
ludde aha nice11:54
Ilari Set the default remote name to what the default would be (if unspecified) and default branch name to current branch?11:54
roop joined11:55
sitaram left11:55
cilly left11:56
doener left11:57
doener joined11:57
kpreid_ left11:58
kpreid_ joined11:58
ludde Ilari: do you know how recent git? with 1.6.4 and I do (mkdir a && cd a && git init) && git clone file:///d/temp/a b i get12:01
warning: You appear to have cloned an empty repository.12:01
fatal: The remote end hung up unexpectedly12:01
Ilari ludde: Did the clone really work?12:02
shruggar 86ac751859033741a120e9e4a91133d075d9d89812:02
Gitbot [git 86ac75185]: http://tinyurl.com/lkdut3 -- Allow cloning an empty repository12:02
ludde hmm yeah it seems to have worked12:03
only exception from the regular case is I have to write 'git push origin master' instead of just 'git push' since the branch master is not created in a yet.12:04
runeb- joined12:04
cilly joined12:04
ludde it's a bit weird that it prints that fatal error message, though.12:04
shruggar use git --version to make sure you're using the one you think you are? :)12:06
ludde git version 1.6.4.msysgit.012:06
Ilari ludde: I think newer versions still fix that error message...12:06
DaveIngram joined12:07
tg left12:09
roop left12:09
kupsch left12:09
jettero_ left12:09
dionoea_ left12:09
Yuuhi`` left12:09
zoniq left12:09
frede left12:09
mattayers left12:09
johan-s left12:09
ludde left12:09
tvw left12:09
loops left12:09
priidu left12:09
Davey left12:09
tjafk left12:09
ruphy left12:09
Gitzilla left12:09
knittl left12:09
nothingHappens left12:09
yhager left12:09
pas left12:09
gitster left12:09
_hp_ left12:09
rtyler left12:09
jmspeex left12:09
chrysn left12:09
shd left12:09
eMBee left12:09
dsch04 left12:09
dsop left12:09
BC^bd left12:09
offby1 left12:09
segher left12:09
dkr21 left12:09
uau left12:09
RobertLaptop left12:09
jrdavid left12:09
madewokherd left12:09
electrogeek left12:09
pielgrzym left12:09
dmlloyd left12:09
lucs left12:09
Aikawa left12:09
erg left12:09
przemoc left12:09
me22 left12:09
fr left12:09
Kangou left12:09
joeytwiddle left12:09
GarethAdams|Work left12:09
reto__ left12:09
PN left12:09
LotR left12:09
aep left12:09
csgeek left12:09
wang left12:09
Ryback_ joined12:09
kssddy left12:10
roop joined12:10
kupsch joined12:10
jettero_ joined12:10
dionoea_ joined12:10
Yuuhi`` joined12:10
zoniq joined12:10
frede joined12:10
mattayers joined12:10
johan-s joined12:10
ludde joined12:10
tvw joined12:10
loops joined12:10
priidu joined12:10
Davey joined12:10
tjafk joined12:10
ruphy joined12:10
Gitzilla joined12:10
knittl joined12:10
nothingHappens joined12:10
segher joined12:10
yhager joined12:10
Aikawa joined12:10
madewokherd joined12:10
pas joined12:10
GarethAdams|Work joined12:10
gitster joined12:10
PN joined12:10
joeytwiddle joined12:10
jrdavid joined12:10
uau joined12:10
reto__ joined12:10
tg joined12:10
dmlloyd joined12:10
RobertLaptop joined12:10
_hp_ joined12:10
rtyler joined12:10
erg joined12:10
lucs joined12:10
dsop joined12:10
jmspeex joined12:10
me22 joined12:10
LotR joined12:10
pielgrzym joined12:10
dkr21 joined12:10
fr joined12:10
offby1 joined12:10
csgeek joined12:10
BC^bd joined12:10
chrysn joined12:10
przemoc joined12:10
dsch04 joined12:10
Kangou joined12:10
aep joined12:10
shd joined12:10
wang joined12:10
electrogeek joined12:10
eMBee joined12:10
linkinus joined12:10
jjuran left12:10
RichGuk joined12:11
RichGuk Any idea why I'm getting this when closing a SVN repo with git-svn: Error in tempfile() using .git/XXXXXXXXXX: Parent directory (.git/) is not writable12:13
selckin have you read it?12:13
RichGuk I'm running the git svn clone command from OSX on a NFS mounted volume. I can clone normal git repos fine.12:13
ctusar joined12:14
gaveen joined12:15
RichGuk selckin: Yes I have, just wondered if it was a permissions problem seeming I can clone normal repos fine over the mounted volume.12:16
and .git appears writeable.12:16
shruggar anyone know a link to a thread or something which describes the purpose of "git replace"? the manpage for it seems very.. non-explainy12:16
Davey left12:17
kpreid_ left12:19
charon shruggar: http://thread.gmane.org/gmane.comp.version-control.git/130000/focus=13000512:19
LRN left12:19
shruggar charon, thanks, my google-fu was failing me12:19
charon well look at the date... for once my memory served me ;)12:20
ludde is a git 1.6.4 repo compatible with git 1.5?12:20
how old git do I need for it to be incompatible?12:20
shruggar compatible in which direction?12:22
ludde in both directions12:23
tjogin|awaytjogin12:23
charon see c0a5e2d477ba for the indexes, can't find the one for the pack files themselves12:23
Gitbot [git c0a5e2d47]: http://tinyurl.com/yh6l4h6 -- pack.indexversion config option now defaults to 212:24
ludde i.e. which git version X is the lowest version such that a developer using X and one using master can collaborate12:24
charon the formats of the rest have afaik been stable for longer than you should care12:24
ludde cool12:24
RichGuk Any ideas? ^12:24
dfaure joined12:26
dfaure I made a commit in branch A and then created branch B, while I meant to do the opposite (so the commit should be only in branch B). How do I "move" it? Just reset A to one commit before, or will that mess up B?12:27
Ilari Pack v3 appeared in 1.212:28
priidu left12:28
Ilari Then there are the offset deltas...12:28
Thumper_ dfaure: yes assuming B was created from A12:28
dfaure yes it was12:28
tstclair joined12:28
dfaure so, git checkout A ; git reset <sha1_of_previous_commit> ?12:29
Thumper_ dfaure: you'll just move A back to a previous commit (where you really want it to be)12:29
dfaure: yes12:29
loops RichGuk: try setting TMPDIR to a local directory12:29
dfaure ok. initially I was going to go rebase -i, delete commit, then cherry-pick :/12:29
Thumper_ dfaure: or you can do it in gitk - and right click on the commit you want it to be and and reset A to here12:29
Ilari ludde: For what version is sufficient for cloning, I once cloned (this was few months ago) git.git using pre-1.0 version. I think the lowest requirement for that is 0.99.1...12:29
thiago_home ludde: I think 1.4.4.4 is still push-fetch compatible. But use 1.6, period.12:29
Blackshark joined12:30
gaveen left12:31
Ilari For fun read, type 'git show v0.99.1' in git repo clone... :-)12:31
blazer joined12:32
rsv joined12:32
rvsjoen any chance there is an easy way of separating multiple changes in a single file into separate commits ?12:34
rsv i have a git repo - i have 2 branches - one is unstable branch and another is a stable branch - i/my team does git commits to the unstable branch, once in a while i move the patches from unstable to stable branch12:34
RichGuk loops: No luck.12:34
rsv while moving so - i get git errors12:34
arent the checksums affected here12:34
Ilari rsv: What errors?12:34
rsv the patch not applied properly12:35
dfaure Thumper_: thanks for the help12:36
dfaure left12:36
tstclair left12:36
rsv are these checksums unique to the branch12:36
tstclair joined12:36
rsv or they still are recomputed again in another git branch12:36
loops RichGuk: if nobody comes up with a fix for you here, please try the mailing list12:38
RichGuk loops: Shall do, thanks very much :)12:38
ph^_ joined12:40
DaveIngramDaveIngram[coffe12:40
ph^ left12:41
lorandi joined12:42
Ilari rsv: Cherry-pick, rebase and format-patch..am don't preserve commit IDs.12:43
mithro joined12:43
ctusar left12:43
ben_h joined12:44
cedric_ left12:44
altrux joined12:45
GodEater left12:45
GodEater joined12:46
pilif Yesterday, we merged a branch of around 350 commits including a cherry-pick or two which spanned one month.12:46
yaotti joined12:46
pilif as this was my first larger merge with git, I didn't know how painful it would be12:47
so I assumed this will be an hour or two of work12:47
not as much :-)12:47
ben_h left12:47
pilif one single conflict that could not be mergen12:47
ben_h joined12:47
pilif 10 minutes of work12:47
and all was done12:47
rvsjoen is there a way to always ignore a specific commit when merging another branch ?12:47
pilif git just rules12:47
wereHamster rvsjoen: no12:47
that's not how merge works12:48
Ilari pilif: I once merged two branches, one with 3 months of work by me, and the other containing 2 years of work from some team. Took 5 days to resolve that one.12:48
rvsjoen ok :/12:48
pilif Ilari: you could have rebased here and then during these three months :-)12:49
rvsjoen thing is I have a development branch on which I have made some changes to be able to run the application on my desktop, however these changes should never go into the master branch12:49
Ilari pilif: AFAIK, no public SCM for that project exists. Only releases.12:49
slabbeh joined12:49
voker57_ left12:50
marc_kdab left12:50
rvsjoen so whenever I merge dev-branch into master I'm looking for a way to ignore these 'local' changes12:50
pilif Ilari: I see. But *if* you can rebase here and then and considering that the changes are kinda localized, merging can be fun an painless12:51
much more so than with, say, svn *shudder*12:51
or as we say in the office here: SVN is great at branching. It's the merging where it fails12:51
rvsjoen guess I could use git stash though to stash those local changes whenever I want to merge12:51
bremner pilif: same could be said for "cp -a"12:52
pilif bremner: agreed12:52
Sho_ joined12:52
johnmclane joined12:52
maio rvsjoen: you can put that local change into separate branch and rebase it each time there is some change in master12:53
pilif in the end, I just love, love, love git.12:53
especially now that we are converting all our old subversion repositories and can really begin to reap all the benefits git provides12:54
it took me only a year to convince everybody that git is by FAR superior to svn12:55
kpreid_ joined12:55
Ilari pilif: Converting SVN repos to git is somewhat painful because all the stuff SVN doesn't record.12:55
rvsjoen maio: that's a very good idea. thanks12:55
jast there is a lot of potential in refining your convincing skills, then ;)12:55
pilif jast: well. 2 of 3 were easily convinced12:56
but that one guy is still using windows 2000 on his machine, so that might help explain my issue there :-)12:56
johnnyg joined12:57
roop_ joined12:57
nothingHappens left12:58
ringlej joined13:00
Blackshark left13:02
Bass10 joined13:06
yaotti left13:07
roop__ joined13:09
roop left13:11
hummingkid joined13:11
ChengKe joined13:13
ChengKe left13:13
roop_ left13:14
Akufen joined13:14
sprasanna left13:15
tomgraham left13:20
maravillas_ joined13:20
j416 joined13:23
dionoea_dionoea13:23
rsv left13:24
ctusar joined13:24
yaotti joined13:25
runeb- left13:25
ph^_ left13:27
simNIX left13:29
pgalbraith joined13:29
kukks joined13:30
gcla joined13:30
yaotti left13:35
boto joined13:35
ph^ joined13:35
yaotti_aw joined13:35
yaotti_awyaotti13:35
corp186 If person A clones my repo and does some work, then I start tagging some commits in my repo, will A need to refetch my repo as though I had rebased it?13:36
johnnyg left13:36
resmo left13:36
corp186 note that I'm not changing tags, just adding tags13:36
resmo joined13:36
ph^ left13:37
selckin define refetch13:37
but i'll go with no13:37
ph^ joined13:38
corp186 selckin: refetch means the process one would have to go through if the repo to pull from has been rebased13:38
Mikachu corp186: no, tagging doesn't change the commits13:38
if you rebase though, the tags will still point to the old commits13:38
corp186 ok, second question: If I wanted to add a tag to every single commit (to link to a bug tracker bug) would that cause architectural issues?13:39
vzctl_ left13:39
corp186 I know that's vague13:39
keystr0k joined13:39
Mikachu all the tags need to have different names13:39
corp186 I just want to be sure that a tag explosion won't harm performance or functionality13:39
selckin why not just reference then by sha?13:39
corp186 understood13:39
selckin: we need some way to go from commits to bugs13:39
not just bugs to commits13:39
b0fh_ua joined13:40
corp186 My thought is we could tag all commits as <branch>_<bugID>_<serially incrementing integer>13:40
b0fh_ua Hi there! I am trying to apply a patch with git-am, bit getting the error: Patch failed at 0001. When you have resolved this problem run "git am --resolved"13:41
how can I find out what may be wrong there?13:41
git st does not say anything about unmerged files or something like this13:41
CaptTofu left13:41
tmz b0fh_ua: Adding the --reject argument will make git am pass that to git apply and it will leave the rejected patches around for you.13:41
jast b0fh_ua: did am say anything apart from just "patch failed"?13:42
doener b0fh_ua: "git am --abort", then re-try with "git am -3 ..."13:42
tmz Also, git am -3 can often help, if the rejects are things that git could potentially merge.13:42
roop__roop13:43
b0fh_ua ah13:43
nice13:43
doener tmz: even if it cannot auto-merge, the conflict markers are usually more helpful than the .rej files (to me)13:43
jast corp186: thousands of refs are probably not a good thing to have. for one thing, more interesting tags will get lost in all the noise.13:43
b0fh_ua I found that the error seems to be caused by wrong line endings13:43
corp186 jast, bug tags can be filtered out when listing tags13:44
tchan1tchan13:44
corp186 and we're also not heavy users of tags for "meaning" purposes anyways13:44
jast well, personally I'd work on each bug in a separate branch, e.g. bug/123413:45
and once you merge those you can delete the branches and still find the stuff related to that bug by searching for merge commits talking about bug/123413:45
sockmonk joined13:45
corni joined13:46
sockmonk left13:46
corp186 jast: we want to preserve all of the history, so we're trying to avoid merge commits in favor of fast-forward pulls13:46
jast what about merges doesn't preserve history?13:47
broonie Merges still preserve the history?13:47
corp186 (I'm new to git, so I may be off base on that)13:47
doener .oO( this is not svn )13:47
jast merges are precisely *for* keeping history13:47
corp186 oh wait, the problem is when a fast-forward does occur13:47
selckin the branch/merge thing is probably the 'normal' way of doing things13:47
corp186 if a fast-forward occurs, there's no merge commit13:47
abms1116 joined13:47
jast you can force a merge to not fast forward13:47
git merge --no-ff13:48
m-takagi joined13:48
jast that way it will create a merge commit even if fast-forward is possible13:48
corp186 what would the history look like after that?13:48
jast well13:48
abms1116 left13:48
corp186 would it be like a ff but with a merge commit tacked on top?13:48
jast suppose your current branch has C <- B <- A (A = most recent)13:48
and you merge in Z <- Y <- X13:48
so then you'd have this: C <- B <- A <- [merge commit] -> X -> Y -> Z13:49
and this would probably look nicer in 2D :)13:49
also, since Z derives directly from A, there would be a A <- Z in there too, but I can't visualize that in 2D13:49
corp186 I see what you're saying13:50
elliottcable left13:50
abms1116 joined13:50
corp186 so a ff would produce "C <- B <- A <- Z <- Y <- X"13:50
?13:50
jast something like this:13:50
http://pastebin.ca/162209913:50
in the non-ff case13:51
kpreid_ left13:51
jast ff would produce C <- B <- A <- X <- Y <- Z13:51
sorry, I reversed the order of XYZ in the last two examples13:51
doener http://git.pastebin.com/m2173e43213:51
corp186 jast: ok thanks13:51
this might help me out a bit13:51
ramus` joined13:52
suman joined13:52
jast and since the default text for merge commits is "Merge <branch name>", you can use git log --grep=bug/1234 to find old bug-related changes13:52
alezandro left13:53
corp186 yeah13:54
vzctl_ joined13:56
lorandi left13:56
Levenson1 joined13:56
spearce joined13:57
Levenson1 left13:57
murbank joined13:58
aliceinwire left13:58
aliceinwire joined13:59
j416 left13:59
murbank Anyone know how to do something like "filter-branch 'rm -r $GIT_INDEX_FILE'" using msys-git (dos)?13:59
lorandi joined13:59
Aikawa_ joined13:59
j416 joined13:59
b0fh_ua is it possible to ignore changes in newlines when preparing or applying a patch?13:59
jdillon joined14:00
sh1mmer joined14:01
maravillas_ left14:01
b0fh_ua ?14:02
murbank b0fh_ua: Check the man page for diff and patch14:03
-w for example14:03
babilen joined14:04
murbank git diff takes many of the options used in diff14:04
s/options/common options14:04
Might be the same with patch14:04
ajt joined14:05
murbank Otherwise I guess you can apply the patch outside of git (using -l)14:05
kpreid_ joined14:09
ajt left14:09
jdillon left14:10
Aikawa left14:12
xenoterracide left14:13
b0fh_ua okay14:13
droidcore joined14:14
sh1mmer left14:14
sh1m joined14:14
xenoterracide joined14:15
voker57 joined14:15
xenoterracide left14:16
xenoterracide joined14:18
xenoterracide left14:18
roop_ joined14:19
xenoterracide joined14:20
xbl joined14:21
Ilari spearce: Given that many external transports use usual URLs that could be parsed by standard algorithms, what about capabilities that would signal main git binary to provode assistance like splitting URLs into component parts and resolving stuff from hosts database?14:21
tvw left14:23
tvw joined14:23
scarabx joined14:24
spearce uh, why? url splitting isn't that hard and DNS lookup is pretty simple, gethostbyname....14:27
mht2k3 joined14:27
romfert joined14:29
drubies joined14:29
mht2k3 hey i followed the gitosis readme and everything seems to work pretty well except when adding a new user14:29
anyone around that can help out real quick?14:29
psankar left14:30
mht2k3 I added their .pub file to the keydir dir, modified the gitosis.conf and did a commit and push14:30
scarabx left14:31
mht2k3 but when that user tries to clone the project they get an error connecting. i checked authorized_keys in the git directory on the server and it only has an entry for my key (not the new users) does gitosis handle added these new users to authorized_keys or am i doing something wrong here?14:32
b0fh_ua left14:32
ohadlevy joined14:32
ohadlevy I'm using submodules, and I've found a bad commit in my submodule and I would like to go to an earlier commit before the bad commit, how do i do it?14:33
roop left14:33
Ilari spearce: I implemented that splitting stuff once. My implementation is about 100 lines of code...14:33
jrmuizel joined14:34
Ilari spearce: Well, maybe small library would be better...14:34
zoniq How can I check to which remote svn branch my local git branch is "linked" to?14:35
notjohn joined14:36
Ilari zoniq: 'git log --first-parent' look at the git-svn-id lines...14:36
mrlemao joined14:37
zoniq Ilari: Thanks.14:37
And if I make a new local branch new from my local branch which is "linked" to a remote SVN branch, is the new local branch automatically linked to that one as well?14:39
pjackson joined14:41
Ilari zoniq: Yes.14:41
zoniq: (AFAIK)14:41
wolog left14:41
pjackson Is there somewhere I can find out which features were introduced by which version?14:42
sh1m left14:43
murbank I'm trying to use filter-branch to preserve the history of only a single file and remove everything else. This "filter-branch --prune-empty --index-filter 'rm -f $GIT_INDEX_FILE; git reset -- foo.py; :'" doesn't seem to work. I get merge commits and only the first commit of the file. What am I doing wrong?14:43
chamo left14:43
drubies left14:43
transplant joined14:44
johan-s left14:46
pheaver joined14:47
mht2k3 nevermind i figured it out, i forgot to add the new pub key before i commited and pushed!14:47
ohadlevy left14:48
EricInBNE left14:51
kpreid_ left14:51
pjackson E.G. A chart that tells me in which version 'git log' got --graph ?14:52
wolog joined14:52
lorandi left14:52
lorandi joined14:53
galderz left14:53
murbank pjackson: Try the changelog14:55
hakunin left14:55
hakunin joined14:56
murbank pjackson: Or find the commit in the git git repo that introduced it and then find the nearest tag.14:57
alezandro joined14:58
charon murbank: reset is the wrong tool, try 'git add foo.py' instead14:59
murbank charon: Do I need to commit?15:00
charon oh, wait, never mind, i'm wrong15:00
LRN joined15:00
sde_antrix left15:01
kpreid_ joined15:01
patmaddox joined15:01
loincloth joined15:02
flazz joined15:02
murbank Is reset correct then?15:02
romfert left15:02
Turias joined15:02
pjackson murbank: Yes, I just hoped there may be a less laborious way.15:03
charon murbank: yes, it should be, seems to fail for some other reason though15:03
pjackson: there are also changelogs for each released version, but i doubt anyone prefers looking through those15:05
<HEAD:Documentation>15:05
Gitbot [git Documentation]: http://tinyurl.com/ykalj3u [tree]15:06
charon murbank: ah, got it. gfb doesn't set HEAD to the filtered commit; you need to git reset $GIT_COMMIT -- foo.py15:07
pjackson charon: Thanks.15:07
charon pjackson: git log --grep="search string" and git describe --contains $sha1 are usually very effective in this15:07
ixti left15:07
transplant left15:09
cannonball joined15:09
dionoea left15:10
tjogintjogin|away15:10
romfert joined15:10
bcardarella joined15:11
murbank tries git reset $GIT_COMMIT -- foo.py15:11
dionoea joined15:11
ixti joined15:13
rchavik left15:13
wwalker I am using git-svn. How can I see, before running git svn dcommit, what the commits and messages will be that go to svn?15:13
rudi_s joined15:14
pilif the messages will be identical to the ones in your git repo15:14
wwalker git log git-svn.. gets me the messages (and the git commit hashes) but I'd like to see the files that each modified/added/deleted15:14
pilif so, git log15:14
git log --stat15:15
mrlemao left15:15
wwalker pilif: thank you15:15
aisbaa joined15:15
gw280 joined15:15
gw280 ok, so we have a large project with multiple git repositories, and commits in one repository can depend on commits in another15:16
what's the best way of dealing with atomicity between repositories?15:16
or sorting out dependencies15:16
mrlemao joined15:16
wwalker pilif, thanks, that got me looking correctly in the man page. I wanted --name-status.15:16
charon gw280: you probably have a wrong mental model of git. a commit always "drags along" its entire parent chain, so there can never be a missing "dependency"15:17
Pewpewarrows joined15:17
gw280 charon: no15:17
offby1` joined15:17
gw280 charon: let's say we have two repositories15:17
wwalker so, now I see that I have two commits. one breaks a file (and nothing else) and the other fixes the files (back to original). Can I just "delete" those two commits? If so, which man page ?15:18
gw280 charon: you commit a change to one of them, but that change (to build that repo) requires a change in another repository15:18
charon: which is just about to be committed, but you can't do it atomically because they're two different repositories15:18
csgeek can I ask a question about gitosis in here? I'm having trouble getting a user to access a repo as read only15:18
DaveIngram[coffeDaveIngram15:19
charon gw280: oh. you could look at submodules, they "bind" a certain submodule commit to the superproject. so you can have a super-repository that records consistent states of the submodules15:19
murbank charon: Thanks that worked.15:19
aisbaa hi, I would like to learn how to make one commit out of many, if its possible - there should i look for info?15:19
pilif wwalker: git rebase -i15:19
murbank Any idea how to get rid of the merge commits.15:19
rolfb left15:19
pilif but don't do that when the commit has already been made public15:19
murbank ?15:20
gw280 charon: right15:20
charon gw280: then your builders just need to run 'git submodule update' to match the submodules to the state recorded in the superproject, and it'll be consistent15:20
csgeek never mind.. it's not read only access... it's access in general that's being buggy15:20
charon (it may also be possible to stuff one repo as a submodule into the other, amounts to a similar thing)15:20
dirk2 joined15:20
gw280 charon: would there be any way of doing such things automatically on commit?15:21
charon gw280: which part of it? automatically updating all submodules and recompiling when a new superproject commit arrives?15:21
javatexan joined15:22
wwalker pilif, thanks :)15:22
gw280 charon: no, keeping the superproject in sync15:22
charon murbank: it already simplifies according to --simplify-merges rules. how do your "superfluous" merges look?15:22
gw280: but how could an automatic mechanism know whether, after a subproject commit, the state is consistent (and should be recorded in the superproject) or not (and shouldn't)?15:24
agile left15:24
flazz left15:24
mm_work joined15:25
gw280 charon: well, automatic in the sense that somehow the committer could let the system know15:25
squentin joined15:26
aigon joined15:26
murbank charon: None of the other branches touched foo.py. The merge commits are merge of other branches into master and merges of master into other branches and then back to master.15:26
nadim joined15:28
hobodave joined15:28
ph^ left15:29
JaVaK joined15:29
jaysern left15:29
justin-george joined15:30
dionoea left15:30
JaVaK left15:31
JaVaK joined15:31
orafu gw280: just a hunch: maybe you want to have a look at git hook, esp. the pre-commit hook15:31
murbank charon: Is it safe if I just remove commits that have merge in their message?15:31
JaVaK left15:31
charon murbank: give me a moment, i know this is possible to do automatically but i'm still trying to figure out what exact magic it needed ;)15:32
gw280: not sure how letting the system know would be different from running a script that does it for you15:32
struberg joined15:32
orafu gw280: don't know if this is the preferred way to do it, but you could tag the commit in the commit message, and have the pre-commit hook sort out that it should record a consistent state15:32
offby1 left15:33
orafu gw280: or post-commit, maybe15:33
pielgrzym git svn creates a separe branch, right?15:34
for pure svn commits15:34
johan-s joined15:35
mrlemao left15:36
tjogin|awaytjogin15:36
sh1mmer joined15:36
charon murbank: git filter-branch -f --index-filter 'rm -f "$GIT_INDEX_FILE"; git reset "$GIT_COMMIT" -- $file; :' -- $branch -- $file15:37
murbank: but there's a catch15:37
orafu gw280: ha, you could require a tag, have the prepare-commit-msg hook include a selection of tags in the message, have the pre-commit hook check that either the "sync" or "no-sync" is used (but not both) and abort the commit if not. Then the post-commit hook could call git submodule to sync the state if needed. :)15:37
charon murbank: the $branch must point at a commit that is "relevant" to the $file, i.e., one that does not disappear in 'git log --simplify-merges -- $file'15:38
murbank: if your history is reasonably close to linear, that'll be the most recent commit affecting $file (either modifying it, or a nontrivial merge inside $file)15:38
murbank: the trick being that you pass "-- $file" to the underlying git-rev-list that determines how commits will be rewritten, thus kicking in the merge simplification15:39
gw280 orafu: ok, I think I have a solution15:39
orafu gw280: I see :)15:40
charon murbank: that's basically how --subdirectory-filter works, but there gfb does extra work to deal with the "must affect $file" restriction itself15:40
gw280 orafu: so we have n repositories, we designate one that must be committed to last in any set of dependent commits15:40
orafu: so a person commits to all the repositories, but must commit to one of them last15:40
xhr joined15:40
gw280 orafu: then a post-commit hook on that last repository updates a superproject's submodules to point to HEAD on all the repositories15:41
sh1mmer left15:41
gw280 orafu: can you change the submodule's commit head through a push?15:41
orafu gw280: ah, sounds good ^^ (haven't tried it though ;))15:41
sh1m joined15:41
orafu gw280: sorry, I have not worked with submodules yet15:42
charon gw280: leaves me puzzled as to what the advantage over just managing the superproject directly could be15:42
but well, whatever floats your doubles...15:42
gw280 charon: there are reasons why we shouldn't merge the repositories15:42
sh1m left15:42
sh1mmer joined15:43
sh1mmer left15:43
orafu gw280: licensing issues is my favourite reason15:43
sh1m joined15:43
charon what you just proposed seems to be: managing the superproject automatically, triggered by pushing (not committing, i guess) to a "magic" repo15:43
a script would just trigger on request instead, which isn't quite so prone to people forgetting which repo exactly happens to be magic15:44
sh1m left15:44
charon and superprojects don't merge anything15:44
steven hello15:44
sh1mmer joined15:44
steven is there a way to get rid of the " [self willChangeValueForKey:@"users"];15:44
[self.users addObject:user];15:44
[self didChangeValueForKey:@"users"];15:44
15:44
shoot sorry15:44
wrong pasteboard15:44
charon gw280: they only know the sha1s of the involved subprojects, you still need access to the subproject repos separately if you want to clone them15:45
steven is there a way to get rid of the "Merge branch ..." messages when pulling after someone else pushed?15:45
charon (it's possible to ignore them and still work with the superproject)15:45
sh1mmer left15:45
sh1mmer joined15:45
charon s/sha1s/sha1s of the tip commits/15:45
samjam left15:46
Lisimba left15:46
charon steven: you can linearise your history, avoiding the merge altogether, *if* you haven't pushed your half of the commits elsewhere yet; or, you can edit the merge message, but it's probably a bad idea as people expect merge messages to say, well, 'Merge branch...'15:46
ramus` left15:47
steven my boss wants it out of there when i push15:47
charon maybe he should learn about nonlinear history then15:48
http://thomasrast.ch/git/pull_harmful.html might apply, or man gitworkflows, or the --rebase option to pull, depending15:48
Gitbot charon: the gitworkflows manpage can be found at http://git.or.cz/man/gitworkflows15:48
charon but really, if your boss insists the workflow needs to be without merges, you need to fix your boss, not your workflow15:49
murbank charon: Is there a typo here? ; :' -- $branch -- $file15:49
mm_work is there a quick/easy way to checkout a branch into a new dir? Example: Im in a git repo, on branch A. But I need a file (or dir) that is in branch B. I dont want to change branches. Can I just checkout a branch to a different dir?15:49
ramus` joined15:50
tjogin left15:51
orafu mm_work: go to a different directory and set GIT_DIR15:52
charon murbank: no; the part after the first -- goes to git-rev-list internally, which treats the part after the -- (i.e. the second one in the gfb command) as filenames to filter for15:52
stamina left15:52
mm_work orafu: ah, okay, thank you!15:52
charon murbank: you can leave out the $branch if you want to filter HEAD, but it'll still need -- twice15:52
neimoon joined15:54
ben_h left15:54
murbank charon: That works great. Thanks.15:55
fhr joined15:56
murbank I appreciate it.15:56
charon no problem :)15:56
sadly gfb is the kind of tool where you need to read the source to see what to do15:56
mastro left15:57
eean left15:58
thiago_home left16:00
wereHamster mm_work: git new-workdir16:00
thiago_home joined16:01
jonto joined16:01
jfxberns joined16:03
jfxberns left16:03
patmaddox left16:03
lhz joined16:03
jonto Hi, I'm trying to make git to push to a remote git repo, but it does not seem like the post-commit file is run.16:03
roop_ left16:04
hyperair left16:05
Rhonda jonto: Does it have execute permissions?16:06
psoo left16:06
agile joined16:06
jonto Rhonda, jupp16:07
charon jonto: post-commit runs on commit. if you want to do something when new commits arrive through a push, use post-receive or the like16:08
hugoxrosa joined16:08
JonasG left16:08
charon or are you trying to push automatically on commit?16:08
kumbayo joined16:08
jonto charon, Yes, I'm trying to push automatically to my server16:09
kpreid_ left16:09
reprore joined16:09
WebDragon joined16:13
aboeglin joined16:14
revans joined16:15
hyperair joined16:15
gitte joined16:16
sh1mmer left16:16
charon jonto: well, works for me. double check that it really resides in .git/hooks/post-commit, is executable and has a valid #! line in the case of scripts...16:17
Bucciarati left16:17
revansjeckel16:17
jeckeljeckle16:18
jecklerevans16:18
aboeglin Hi, I've got one question, google didn't help me with : I have converted a svn repo to git using git-svn, is it possible for someone else to clone the git repo, and update it from svn (assuming there have been some newer svn commits since the conversion to git) without having to fetch the complete svn history once again ?16:19
ntoll left16:20
koltroll left16:20
abms1116 left16:22
PointMan left16:24
sonic joined16:24
rchavik joined16:24
mht2k3 left16:26
enherit joined16:26
Weasel[DK] joined16:27
qhoxie joined16:27
tvw left16:28
jonto charon, ahh, stupid me I did not put in .get/hooks but somehow had created a /hooks at the root of the repo. Thank you :)16:28
rudi_s_ joined16:28
seangrove joined16:28
Zougloub joined16:30
RichGukRichGuk_work16:30
ciskje left16:32
revans left16:32
dionoea joined16:32
WALoeIII joined16:33
WALoeIII left16:33
WALoeIII joined16:33
philthno2 left16:35
charon aboeglin: you need to somehow recreate all svn refs, and git svn init with the same parameters as the other repo (or copy the config)16:35
fhr_ joined16:36
charon assuming the original clone has no other remotes, git fetch origin refs/remotes/*:refs/remotes/* can do the first task16:37
(but note that such fetchspec trickery won't ask before overwriting)16:37
abms1116 joined16:38
shruggar left16:38
malumalu left16:39
kennethlove joined16:39
fhr left16:41
fhr_ left16:41
fhr joined16:41
mattayers left16:42
fualo how do I stop following a git-svn branch? I thought commenting it out in .git/config would work16:43
and I want it to stop showing up in gitk16:43
ixti left16:43
rudi_s left16:43
kpreid_ joined16:45
aboeglin charon: I will try that, thanks16:45
tjholowaychuk joined16:48
fualo I tried git branch --no-track svn, but it still comes up in gitk --all16:49
j416 left16:50
jeckel joined16:50
panpainter joined16:50
xhr left16:51
jeckelrevans16:51
fualo I want to try deleting it, but then I dont have a way to go back16:52
khmarbaise joined16:53
enherit left16:53
loops fualo: you want to stop importing from svn and dump the tracking branch in your local repo?16:53
fualo loops; yes we are fully migrated to git alone now16:53
and its duplicating history16:54
which I thought I fixed with a complex rebase16:54
philthno2 joined16:54
neimoon left16:54
fualo http://imgur.com/t3OxO.png16:54
thats with gitk --all16:54
I want to dump remote/trunk so that awfulness goes away :-)16:55
loops fualo: well, "duplicate" commits, blobs, and trees, are stored only once in a Git repo, git only stores a single copy16:55
fualo so can I just do git branch -d remotes/trunk there?16:56
krawek joined16:57
loops fualo: yes, or git branch -r -d trunk16:58
sonic Can anyone help me with this?16:59
loops sonic: with what?17:00
wolog left17:00
sonic loops: it won't let me check out to the current dir. I need to be able to do this17:01
loops fualo: If you really want to throw everything away and get a clean start, you could "git clone" it to another spot, clone wont copy remotes or all the other svn meta data17:01
ixti joined17:01
sonic Sorry, I meant clone (new to git lingo)17:02
The problem is, I already have other directories in the current directory17:02
loops sonic: it will let you clone to the current directory if it is empty17:02
Garoth left17:03
Garoth joined17:03
sonic But I need to clone to a non empty directory17:03
ChenKaie_ joined17:03
RangerRi1k joined17:04
loops that's a pretty odd thing to want, Git doesn't support it. You could clone normally and then checkout files into that directory though17:05
RangerRick left17:05
maattd joined17:05
bsdvodsky left17:06
sonic Hmmm.... that'll take some work as the other dirs are svn projects and I need to do some commits first. The git project is the framework they sit in. But if you say git doesn't support it then I guess that's what I'll have to do. Thanks loops17:07
Weasel[DK] left17:07
DavidKlein joined17:07
ph^ joined17:08
aigon left17:08
fualo sweet loops that worked, but now I have a severed head (in that image, it was the head with the rc-x tags)17:08
nevyn___ joined17:08
ab3 joined17:09
RangerRi1kRangerRick17:09
NET||abuse left17:09
tvw joined17:09
dreiss joined17:10
nevyn left17:11
fualo I don't think severed head is the proper term17:11
LiamH joined17:12
xbl left17:13
Mikachu detached17:13
charon sonic: clone is basically init, remote add, checkout -b17:15
fualo Mikachu: is there a way to delete a duplicate branch with a detached head? (remnants of git-svn)17:15
charon sonic: so you can just do each of those manually17:16
er, you need to fetch also of course17:16
sitaram_ left17:17
sitaram joined17:18
charon fualo: that use of "detached head" makes no sense, can you explain exactly what branches you have and what they point to?17:18
fualo http://imgur.com/Lha3r.png17:19
rc-4 is a detached head17:19
remnants of a git-svn rebase mess17:19
Weasel[DK] joined17:19
context joined17:19
fualo well, rebase fixed it17:19
I want to delete that branch17:20
context so im trying to git-svn a repo in google code, and its trying to say i dont have (no author) in my authors file, but i do17:20
ChenKaie left17:20
charon fualo: use git tag -d to delete those tags17:21
fualo that will delete the tag, but what about the entire branch?17:21
priidu joined17:21
Sigma joined17:21
charon fualo: and we call that "diverged history". a detached head is an entirely different thing17:21
context if nothing is using the branch then its unreachable17:21
charon fualo: garbage collection will take care of them17:21
schambers joined17:22
fualo ah, I see17:22
charon context: a branch that nothing points to is a contradiction :(17:22
onigiri joined17:22
fualo All fixed, thanks charon17:23
context charon: heh17:23
murbank charon: This is embarrassing: I noticed that other files besides foo.py were included in the patch for the filtered commits so I tried to filter-branch on a newly cloned repo but now I keep getting "Warning: Ref 'refs/heads/master' is unchanged". Any ideas?17:23
(and nothing seems to be filtered)17:23
romfert left17:24
sonic Thanks charon, I'll try that17:25
Weasel[DK] left17:25
JotaVe joined17:25
jceb joined17:29
sh1mmer joined17:30
sonic left17:31
abms1116 left17:32
drowe joined17:32
mcella left17:33
nighthwk1 joined17:33
ph^_ joined17:33
context left17:33
ia left17:34
elliotf joined17:34
ph^ left17:35
tstclair left17:35
tstclair joined17:35
Theravadan joined17:35
kpreid_ left17:37
kpreid_ joined17:37
phuff joined17:37
alienbrain left17:37
phuff I tagged master17:37
But then I made a change.17:37
Can I retag and use the same tag?17:38
Or do I absolutely have to use a new one?17:38
PN left17:39
Weasel[DK] joined17:40
aboeglin left17:40
charon murbank: newly cloned from the unfiltered source?17:41
sonic joined17:41
Mikachu phuff: if you didn't push it yet, you can tag -d and retag17:41
runeb- joined17:42
Mikachu phuff: if someone has it already, their git will refuse to update it unless they do extra stuff17:42
khmarbaise left17:43
augustl joined17:43
charon murbank: in which case you probably forgot to first point your to-be-filtered branch at the most recent commit that affects the file(s) you're filtering for17:44
augustl What are all those things that aren't a commit? http://pastie.org/65636117:44
khmarbaise joined17:44
Mikachu augustl: could be reset maybe17:45
augustl Mikachu: yeah i did a whole lot of git reset --hard17:45
Mikachu that'll be it then17:45
sh1mmer left17:45
augustl why are those stored in the reflog?17:45
and why do they persist through a "git gc"?17:45
sh1m joined17:45
Mikachu because that's what the reflog stores17:45
tedoc2000 joined17:45
sh1msh1mmer17:45
Mikachu because they are in the reflog17:45
bugfux joined17:45
augustl hmm, cool :)17:45
javatexan left17:46
jceb left17:47
ia joined17:49
sitaram left17:51
sitaram joined17:51
JotaVe left17:54
sitaram left17:54
NemesisD joined17:54
gonzojive joined17:54
NemesisD hi all. bit of a problem, i did a merge and git tried to merge 2 binary files. i know exactly which one i want but now I have 2 unmerged binaries i don't know how to deal with17:55
Adlai NemesisD: `git add <the one you want>' and `git rm <the one you don't>' and then do whatever the error message said to do once you've resolved the merge -- probably `git commit'17:56
gonzojive I have a git repository with two branches: master and part2. I want to clone the repo, and in that clone switch to part2 and have the working directory reflect the files in branch part2. when I try git clone [...], git checkout part2 I get an error: "pathspec 'part2' did not match any file(s) known to git"17:56
NemesisD Adlai: i only see 1 in the directory17:56
erm 1 set17:57
jonshea joined17:57
charon NemesisD: git checkout {--ours,--theirs} -- $file17:57
Adlai NemesisD: oh, I see, two versions of the same file. What charon said.17:57
charon (ours is the side of the branch you were on, theirs is from the branch you are merging from)17:57
javatexan joined17:58
kelvie left17:58
Cromulent joined17:59
NemesisD charon: well it didn't literally take the flag --ours, what am i to put in there17:59
branch name?17:59
jonshea Is there a canonical way to test if a file is being ignored? The best I’ve figured so far is that git-ls-files -- filename won’t print anything for an ignored file.17:59
charon NemesisD: that will work, but you should update your git17:59
schambers left18:00
charon (--ours/--theirs was in 1.6.1)18:00
Bucciarati joined18:00
vinse joined18:01
tono left18:01
jchris left18:01
drowe left18:02
tono joined18:02
gonzojive It seems like you switch branches with `git checkout part2' but it is giving me the "pathspec 'part2' did not match any file(s) known to git" message18:02
tono left18:02
gonzojive it seems like git is looking for a file named part2, but there is a branch named part2 that I want to work on18:02
NemesisD charon: i guess the ubuntu repos are horrible out of date18:02
im on 1.6.0.418:03
onigiri left18:04
gonzojive aha! the branches are prefixed by the remote ref, or something. the branch is called origin/part2 for some reason, not 'part2.' what's up with that?18:05
Theravadan left18:06
Theravadan joined18:06
WebDragon|away joined18:07
augustl left18:07
justin-george left18:07
Ilari gonzojive: That's because foo of remotes foo and bar needs to be kept seperate.18:12
WebDragon left18:13
WebDragon|awayWebDragon18:13
kelvie joined18:13
sitaram joined18:14
gonzojive Ilari: so when you do a `git fetch' are you fetching the latest version of a remote branch into something like origin/master. then when you do `git merge' you are merging origin/master with the local master?18:15
cloudhead joined18:16
Ilari gonzojive: Yes. Those origin/master thingys are known as remote trackin branches (unless terminology has changed...)18:16
*tracking18:16
murbank charon: I need to point to latest commit where the source was modified or one of its descendants?18:16
cloudhead is there something I can add to my git remote config, to make pushes go to a specific branch on the remote?18:16
murbank charon: (Yes it is newly cloned from unfiltered source)18:17
cloudhead instead of having to do `git push staging staging:refs/heads/master`18:17
murbank charon: I'm pointing at a descendant18:17
Ilari cloudhead: Well, there is 'remote.stating.push'.18:17
*remote.staging.push18:17
cloudhead ah18:17
gonna try that18:17
corp186 How can I get the branch name from a commit hash?18:18
c15c8ra1n joined18:18
patmaddox joined18:18
Ilari cloudhead: If you need multiple refspecs, specify multiple settings by that name.18:18
flazz joined18:18
Ilari corp186: 'git branch --contains <id>'?18:18
corp186 Ilari: would that work inside the update git hook?18:19
notjohn left18:19
Ilari corp186: Doesn't work right inside update hook.18:19
cloudhead Ilari: so I should add that to my config?18:19
notjohn joined18:19
Ilari cloudhead: Yes. In actual configuration, it appears as [remote "staging"] push = ...18:20
cloudhead: But you can use git config to set it.18:20
c15c8ra1n left18:20
zoniq left18:20
notjohn left18:20
cloudhead Ilari: right, I've tried to use the push setting, but not sure how to specify It, it hasn't been working18:20
uau` joined18:20
ryanarn joined18:21
cloudhead can't find documentation on that18:21
notjohn joined18:21
mbroeker joined18:21
Ilari cloudhead: 'git config remote.staging.push staging:refs/heads/master'.18:21
cloudhead: And then 'git push staging' should work.18:22
Lisimba joined18:22
cloudhead Ilari: ah nice, I was doing something too complicated probably18:23
corp186 how are branches stored in the git object model?18:23
Ilari corp186: Branches are not objects. They are refs.18:24
cloudhead Ilari: actually I was doing git push remote local # instead of just git push remote, working now, thanks!18:25
corp186 Ilari: the contents of .git/refs/heads/<branch> is a commit hash18:26
if I'm an update script, can I compare the parent of a commit that is getting updated to the branches found in .git/refs/heads to figure out what parents are what branches?18:27
sh1mmer left18:27
Ilari corp186: You get the old value and branch name in update script.18:28
corp186 Ilari: where do you get the branch name?18:28
khmarbaise left18:28
Ilari corp186: As argument18:28
corp186: Along with the new value for ref.18:29
uau left18:29
corp186 I thought all you got was <ref> <oldrev> <newrev>18:29
oh duh18:29
uau`uau18:29
corp186 so <ref> would literally be the branch name18:29
Stravy joined18:30
kpreid_ left18:30
kpreid__ joined18:30
Ilari corp186: refs/heads/foo for branch foo.18:30
corp186 ok18:30
Ilari corp186: Tag pushes appear there too. As refs/tags/foo18:31
Theravadan left18:31
Ilari corp186: And in case of branch create or delete, either old or new revision is 40 x DIGIT ZERO18:31
sitaram left18:32
philthno2 left18:32
sitaram joined18:33
Cromulent left18:33
charon murbank: it must be a commit that is "nontrivial" wrt. the files filtered, i.e., it must modify one of the files or do a nontrivial merge in one of them18:34
gitte left18:34
charon otherwise the tip commit will not be rewritten because it is filtered out before the rewriting stage18:34
and the final branch-updating stage will see that it wasn't rewritten and leave everything as it was18:35
corp186 Ilari: before the pre-receive and update hooks are called, all the objects that would be pushed are available?18:36
justin-george joined18:36
corp186 I would be able to do things like git-cat-file on them?18:36
Ilari corp186: Its git cat-file, but yes.18:38
corp186 Ilari: but if I tried something like git log or git rev-list they would still give me the state of the repo before the push?18:38
jaysern joined18:38
corp186 I guess I need to clarify that18:39
Ilari corp186: Yes, unless you specified the new ref value or something reachable from it.18:39
corp186 if I did git log <new-value> would that actually work?18:39
Ilari corp186: Yes, that works.18:39
corp186 ok, great18:39
thanks a lot by the way18:39
sonic left18:39
amyseldin joined18:41
Axius joined18:41
amyseldin how can I ignore a file locally only? ie not commit an ignore for everyone?18:41
struberg left18:41
Thumper_ amyseldin: .git/info/exclude18:41
ProperNoun joined18:42
corigo joined18:42
corigo Is there a way to use git where I don't have to have a complete repository, but can selectively get single files only?18:43
murbank charon: Thanks that worked.18:43
amyseldin Thumper_: what about a file that is already committed?18:44
I just want a different version18:44
Thumper_ amyseldin: if it's already in the repo it won't be ignored18:44
amyseldin bah... thanks18:44
Thumper_ amyseldin: that can happen for config files - it's better to commit config.sample and just copy it to the config file with local changes18:44
amyseldin no way huh? no magic tricks?18:44
yeah, it is a config file18:45
Thumper_ no magic tricks... if it's tracked it's tracked and it'll show the changes18:45
redbaritone joined18:45
Ilari corigo: No.18:45
Thumper_ I did that (by mistake) in one of my projects and ended up moving them all to .sample18:46
it was way easier to deal with after that18:46
corigo left18:46
psoo joined18:47
flazz left18:48
runeb- left18:50
qmatoz left18:50
til77 joined18:52
tvw left18:53
tvw joined18:53
rchavik left18:54
qhoxie left18:56
rraasch left18:56
kbingham left18:56
Lisimba left18:59
Lisimba joined19:03
revans left19:03
dschulz joined19:06
ProperNoun left19:08
ProperNoun joined19:09
mre joined19:09
Lisimba left19:10
Lisimba joined19:10
augustl joined19:11
redbaritone left19:12
lhz left19:13
Fragsworth joined19:17
spaceonline left19:18
ciskje joined19:18
WebDragon|away joined19:19
wwalker I just did a 'git rm foo' I've not run any other git command. How best to recover the file?19:20
rylar_offrylar19:20
hyperair left19:21
bentob0x left19:21
Aides git checkout -- foo19:22
Ilari Or maybe 'git checkout HEAD -- foo'.19:22
capndiesel left19:23
wwalker thank you both. definitely needed the HEAD though19:23
kpreid__ left19:23
kpreid_ joined19:23
jeckel joined19:23
Aides yeah, /me sucks19:23
wwalker Aides: nope. that would have pointed me to the right man page. :-)19:24
Aides heh ;)19:24
jeckelrevans19:24
Aides i'd also advise you to pay more attention to "git status" output19:25
marvil07 joined19:25
Aides it says how to undo stuff19:25
reprore left19:25
wwalker Aides: will do.19:25
sh1mmer joined19:26
augustl left19:27
WebDragon left19:30
WebDragon|awayWebDragon19:30
justin-g_ joined19:30
bdimcheff joined19:30
qrush_ joined19:31
csgeek left19:33
godsflaw joined19:34
charles__ joined19:37
gw280 ok, so with git submodules19:37
how do I update what checkout a submodule is supposed to be?19:37
or which commit it's supposed to be a checkout of19:37
Ilari gw280: cd there, checkout the proper version, cd back, git add the submodule (don't put trailing /) and commit.19:38
charles__ Looking for doc for config file's fetch = +refs/heads/*:refs/remotes/origin/*19:38
gw280 Ilari: oh cool19:38
godsflaw_ joined19:39
Ilari charles__: man git-config should document the setting.19:39
Gitbot charles__: the git-config manpage can be found at http://git.or.cz/man/git-config19:39
Ilari charles__: +refs/heads/*:refs/remotes/origin/* means to map 'refs/heads/foo' on source side into 'refs/remtotes/origin/foo' on destination side, forcing overwrite.19:39
dead1ock left19:39
cilly left19:40
ryanarn the whole heads vs. origin vs. remote vs. refs thing has me totally confused.19:40
charles__ @ Ilari and @ Gitbot thank you.19:41
WebDragon|away joined19:41
sdboyer_ joined19:41
charles__ are obj in refs marked as indexes?19:41
sdboyer left19:41
WebDragon left19:41
WebDragon|awayWebDragon19:42
charles__ @ryanarn I believe ussually origin is an alias for the remote repositories objs19:42
ryanarn ahh19:42
amyseldin left19:42
charles__ As in git push origin master19:42
ryanarn well stupid git let me create a repo called origin/origin/foo/bar and now it won't implicitly recognize origin/foo/bar19:43
s/repo/branch19:43
sh1mmer left19:43
markelikalderon joined19:43
sh1m joined19:43
charles__ what does 'git branch -a -v' show?19:43
JasonWoof joined19:44
charles__ @Ilari, what does the + sign mean?19:44
NemesisD left19:45
qhoxie joined19:45
justin-george left19:46
ryanarn charles__: http://pastebin.com/m410e34f19:46
charles__: * futex_2.8 is changes I want to push to origin/ibm/2.8/master19:46
mcella joined19:46
ryanarn but origin/origin/ibm/2.8/master is getting in the way19:46
jaysern left19:47
Ilari charles__: Force update.19:47
ryanarn: The origin/ or whatever prefix is added on local side to name of branch on remote side.19:48
Fullmoon left19:48
charles__ @Ilari thanks, I was out of my depth with ryanarn19:48
charles__ left19:49
ryanarn Ilari: ugh :-/ hence why I screwed up.. so a remote push should be: refs/heads/ibm/2.8/master?19:49
Fullmoon joined19:49
Ilari ryanarn: Yes. If the source is local branch, then it should work when shortened to 'srcbranch:ibm/2.8/master'.19:50
ryanarn Ilari: where :ibm/2.8/master is the upstream target right?19:50
ramus`_ joined19:51
drizzd joined19:52
jmgit joined19:53
jmgit hi, how to know if my branch contains a specific <sha1> ?19:53
qrush_ left19:53
sdboyer_sdboyer19:54
loops left19:54
loops joined19:54
Ilari ryanarn: Yes. But ':foo' means to delete foo...19:54
thiago_home jmgit: git log branchname..sha119:55
mremre|away19:55
thiago_home jmgit: empty result = sha1 is in the past of branchname19:55
ajonat joined19:55
pantsman joined19:56
ryanarn Ilari: yeah I learned that the hard way.. apparently it meant something else in older versions of git.19:56
jmgit_ joined19:56
Ilari If you know the SHA-1 is for commit, 'git merge-base <branch> <SHA1>'. If it outputs that SHA-1, then branch contains it.19:56
ryanarn luckily the glibc repo disabled remote branch removal, even for those of us with checkin.19:56
jmgit_ ok thanks Ilari19:56
Ilari ryanarn: AFAIK, it has never meant anything different (other than being error in really old version).19:57
hobodave_ joined19:57
mre|awaymre19:58
ramus` left20:02
godsflaw left20:02
hobodave left20:03
Trey how can I find all symbolic names (branch-tips, tags) that point at a given commit, a la how gitk or gitx do? is there a simple command, or does it do the equivalent of git branch -v, git show for each tag, etc.?20:03
Stravy left20:03
thiago_home git branch --contains <sha1>20:04
marvil07 left20:05
Trey thiago_home: no, that shows me each branch name that contains that commit... i want to know each name (branch or tag) that is *exactly at* that commit, i.e. can be used as another name for that commit at this moment20:05
thiago_home git ls-remote .20:05
Ilari or for-each-ref20:06
johnnyg joined20:06
johnnyg left20:07
Trey Ilari: you're saying "git ls-remote . <sha1>" should work? it doesn't return anything for any commits pointed to by any of my tags or branches.20:08
thiago_home git ls-remote . then parse the result20:09
markelik_ joined20:09
enoex_ left20:11
dirk2 left20:11
Pewpewarrows left20:11
Trey thiago_home: i see. yes, that will work. just making sure there's not some command such that, if i were to run "for i in foo bar bat; do git checkout -b $i; done" that I could run to get "master foo bar bat" in the same sort of way as symbolic-refs works20:11
thiago_home: thanks20:11
Pewpewarrows joined20:11
javatexan left20:13
upul left20:13
jmgit left20:13
yath hmmm, is there a canocical way to get the root of a git repository?20:14
RangerRick left20:14
yath or du i just walk up the path and look for a .git directory?20:14
s/du/do/20:14
^Einstein left20:15
tjholowaychuk_ joined20:15
johnnyg joined20:15
johnnyg left20:15
Trey what does "refs/tags/tagname^{}" mean in ls-remote?20:15
(what does the ^{} mean?)20:16
kpreid_ left20:16
kpreid__ joined20:16
thiago_home ^{} means "the commit"20:17
reidab joined20:18
Trey thiago_home: ah, that makes sense. thanks.20:18
Ilari Actually, ^{} means peel until non-tag...20:18
lucsky left20:19
Ilari That, is, chase tag object pointers until non-tag is reached.20:19
mbroeker left20:20
jmgit_ left20:20
PointMan joined20:21
trogan joined20:21
tjholowaychuk left20:22
tjholowaychuk_tjholowaychuk20:22
panfist joined20:23
panfist i'm doing my first commit ever; when entering a commit message...is my message supposed to be commented by # marks or not?20:23
tedoc2000 left20:23
trogan left20:24
markelikalderon left20:24
trogan joined20:24
Axius left20:24
selckin no20:24
panfist thanks20:24
Ilari panfist: Those '#' lines are stripped.20:24
panfist ahh20:24
slabbeh left20:25
panfist so if i want pre-existing parts like "# Initial commit" in my commit message, I should uncomment it20:25
troganslabbeh20:25
sh1m left20:25
Ilari panfist: Usually those are not meant to be included in commit message.20:26
hugoxrosa left20:26
joevano left20:26
joevano joined20:27
panfist i see20:28
aisbaa left20:28
PointMan left20:28
hugoxrosa joined20:29
smerp joined20:29
WebDragon|away joined20:31
TMChris left20:31
PointMan joined20:32
WebDragon left20:32
ramus` joined20:32
WebDragon|awayWebDragon20:32
Guest12140 joined20:34
mmw joined20:38
kngspook joined20:39
[t0rc] joined20:39
fabiand joined20:39
Theravadan joined20:40
enherit joined20:41
kngspook Is there a way to backdate commits? In other words, make a commit so it looks like it happened in the past?20:41
fabiand hello. is tehere a simple way to get something like subversions automativ properties substitution? ($version$ is replaced autmagically on commits )20:41
bremner fabiand: man gitattributes20:42
Gitbot fabiand: the gitattributes manpage can be found at http://git.or.cz/man/gitattributes20:42
seangrov` joined20:42
fabiand bremner: cheers. is your nick realted to bremen in de_DE? :)20:42
priidu left20:43
ramus`_ left20:43
bremner fabiand: not very directly, it's my name20:43
wolog joined20:45
seangrov` left20:46
kngspook Also, will bad things happen if I do a git-fast-export, alter some of the commit data (ie. email addresses) and then do a git-fast-import on a new repo?20:46
johnnyg1 joined20:47
johnnyg1 left20:47
fabiand bremner: ah nice.20:47
smerp left20:47
seangrove left20:47
Stravy joined20:48
Weasel[DK] left20:48
hobodave_ left20:50
hobodave joined20:51
johnnyg1 joined20:51
__iron joined20:53
ryanarn Ilari: thanks.. getting rid of 'origin' helped resolve the issue.20:54
matthew joined20:54
matthewGuest6139220:54
Guest61392 anyone have experience pushing through a proxy20:54
have git pull working20:54
but push takes forever and fails20:54
dschulz left20:54
spearce kngspook: to backdate a commit either use git-fast-import (where you can set the date explicitly yourself), or set the GIT_COMMITTER_DATE environment variable before running git-commit or git-commit-tree.20:55
kngspook spearce: ah, cool, thanks20:55
johnnyg1 left20:55
spearce kngspook: and if you alter some commit data by way of a fast-export | filter | fast-import pipeline, its fine, but all of the commit SHA-1 hashes change, because all commit data is used to compute the hash.20:55
Ilari Guest61392: You are trying to push over git://?20:55
spearce which is probably fine if nobody is using that repository yet for development, but you wouldn't want to do it on a public repository like say the linux kernel or git itself.20:56
Ilari Guest61392: Or https://?20:56
Guest61392 http://20:56
kngspook spearce: Excellent, thank you so much.20:56
til77 left20:56
Guest61392 is that even possible?20:56
kngspook spearce: (yeah, I don't care about retaining the hashes much)20:57
djszapi Hello!20:57
mremre|away20:58
Ilari Guest61392: http push is known to be difficult to set up serverside. For that reason, ssh is preferred.20:58
Guest61392 I have a locked down environment20:59
djszapi Can I use in my projects on http://developer.berlios.de post-receive-email to send a mail to the project mailing list when I push something e.g. ? I can commit the related .git/post-receive and the desired .git/config but I can't add the real post-receive-email to the berlios server ?20:59
reidab_ joined20:59
Guest61392 I am only getting HTTP/HTTPS20:59
djszapi How can I solve this situation, if i can ?20:59
mre|awaymre20:59
Stravy left20:59
Ilari Guest61392: At least HTTPS is more difficult to interfere with (but there are proxies that MITM HTTPS).20:59
justin-g_ left20:59
Ilari Guest61392: Of course, it has that cert BS (unless you use something like TLS-SRP, which pretty much nothing supports).21:00
justin-george joined21:00
DavidKlein left21:00
fabiand left21:00
Ilari Guest61392: Can you push to same server from unrestricted connection?21:02
Guest61392 yes21:02
Ilari Guest61392: And usernames/passwords match?21:03
Guest61392 yup21:03
patmaddox left21:03
Ilari Guest61392: Then I guess its crap firewall preventing pushes from succeeding.21:03
Guest61392 yeah that's my fear.21:03
Ilari Guest61392: Try upgrading git?21:04
djszapi any idea for post-receive-email on berlios ? Well, i can copy the post-receive-email to the server to, but I don't know what's your recommandation to do.21:04
lorandi left21:04
Guest61392 get a bunch of 'failed, aborting (22,500)' errors21:04
prahal joined21:05
johnnyg joined21:05
johnnyg left21:05
Ilari 5XX is server error.21:06
Or proxy error.21:06
m-takagi left21:06
Guest61392 probably proxy right? considering pushed work from non-proxy box21:07
Ilari Guest61392: Yeah.21:07
[t0rc] left21:08
ia left21:09
kpreid__ left21:09
kpreid_ joined21:09
ia joined21:09
mre left21:11
Guest61392 so doing a tail -f on the access log... it sends a PROPFIND and then just hangs for about 5 minutes21:11
nothing in the error lgo21:12
*log21:12
spearce proxy probably just ignores webdav methods21:12
kumbayo left21:13
pointlessjon joined21:13
kngspook left21:13
pointlessjon left21:13
gonzojive when you delete a branch, is there any way to get it back?21:14
drizzd git reflog21:14
reidab left21:14
reidab_reidab21:14
corp186 I need to be able to edit multiple commit messages, some of them being merge commits21:14
I don't want to rebase the merge itself21:15
how can I accomplish this?21:15
bremner_ joined21:15
ludde left21:15
spearce corp186: you can't, because changing the message changes the SHA-1 id of that commit, and all commits which came after it21:16
corp186 spearce: I understand, that's fine21:16
dpino left21:16
corp186 this is for commits that haven't been pushed to a public repo yet21:16
rudi_s_ left21:16
mjf joined21:17
corp186 actually, I think git rebase -p -i will do what I want21:18
WebDragon|away joined21:18
johnmclane left21:18
corp186 maybe...21:19
bremner_ left21:19
mm_work left21:19
bremner_ joined21:22
gitster it should; i never tried it myself, though.21:24
gitster knows that "commit --amend" of a merge works, though.21:24
corp186 gitster: -commit --amend only works on the last commit though21:25
right?21:25
kngspook joined21:25
gunmuc left21:26
corp186 the problem I'm having, and maybe this is a bug that has since been fixed, is that with rebase -p -i I edit the merge commit but when it stops and lets me amend I just get the previous (as in previous to this commit) message21:26
instead of the current commit's message that I'm amending21:26
charon is there a built-in way to shorten refs (presumably always the same, but who knows) very often? i see shorten_unambiguous_ref but it seems to do a lot of work and no caching of the results (only of the rules)21:26
gitster fundamentally you cannot cache the result. an unambiguous result you get today may become ambiguous tomorrow.21:28
charon well, inside the loop that generates reflog entries i think i can assume when one moment refs/stash was stash unambiguously, it won't be ambiguous within the time it takes to format the rest of the reflog, can't i21:29
(or else it's the user's own damn fault)21:29
d0k left21:29
mjansen joined21:32
DrNick left21:33
charon oh well, i'll do very simple caching since the one current user will only hand it the same ref all the time21:33
mjansen i did 'git init'; git remote add origin -f -t 4.6-stable-patched git://gitorious.org/+kde-developers/qt/kde-qt.git;21:33
is it possible to get a list of other branches available at that repo from the command line?21:33
chawls joined21:34
Ilari mjansen: ls-remote? or git branch -r?21:34
Turias left21:34
jchris joined21:34
WebDragon left21:34
mjansen Ilari: ls-remote21:35
didn't find that one. tried remote show origin and branch -r -a21:35
thx21:35
chawls Hi everyone. I just started using git. I am trying to do "git clone <url>", which starts working but gets stuck on "Receiving objects" stage... can anyone please help?21:35
loincloth left21:35
Ilari chawls: Transfer rate drops to zero?21:35
metadatum joined21:35
metadatum left21:36
chawls Ilari: how do I know what is the transfer rate? I don't think it shows it21:37
Ilari chawls: All but totally obsolete versions should show it for git:// and ssh://21:37
Thell joined21:37
chawls Ilari: my version is 1.5.6.321:37
bremner_ left21:38
Ilari chawls: What's last line printed by by clone?21:38
Thell Quick question:: anyone happen to know of some good resources for a new CVS convert to learn the basics of Git?21:38
chawls Ilari: Receiving objects: 1% (149/14834)21:38
Ilari Thell: Maybe something out of git-scm.com documentation links?21:38
Thell hadn't looked yet, will do Ilari.21:39
loinclot_ joined21:39
loinclot_ left21:39
Sigma left21:39
Ilari chawls: High or low CPU load? Any network traffic?21:40
WebDragon|away left21:40
chawls Ilari: When I try to clone from another repository (not sure that's the correct term), it does show transfer rate. Just not this particular one... but it gets stuck for all of them21:41
Ilari: no, low CPU and network21:41
Ilari: and the transfer rate doesn't drop to 021:41
Ilari chawls: The amount transferred just stops increasing?21:42
chawls Ilari: Yes21:42
Ilari chawls: ssh:// or git://?21:42
chawls Ilari: git:// . I am trying from github21:43
Alien_Freak joined21:43
intripoon left21:43
eletuchy left21:43
mjansen chawls: i have that with 1.6 and gitorious from time to time. i just had to fetch 3 times to fetch from the kdeqt repo21:43
perhaps try to update git first and see if you get an error then21:44
Ilari To me, it sounds like bad connection...21:44
chawls mjansen: I am really new to git... not sure what that means :) is fetch different from clone?21:44
mjansen chawls: no21:44
candybar joined21:44
chawls Ilari: Weird... my connection seems okay21:44
Ilari chawls: git:// can be mistaken for P2P protocols by many ISP traffic priorization systems.21:45
mjansen i would try to update git to the most recent version. iirc i had that stuck forever with older versions too.21:45
chawls mjansen: If I try the command again, it says destination directory already exists21:46
kpreid_ left21:46
chawls mjansen: my current version is 1.5.6.3 (installed it today)21:46
mjansen isn't there a 1.6 ?21:46
Ilari As /topic says, latest is 1.6.521:46
thiago_home left21:47
chawls I will try updating21:47
Circuitsoft joined21:47
agile left21:47
DrNick joined21:47
hakunin_ joined21:48
agenteo joined21:49
ajonat left21:51
Alien_Freak is there anyway to checkout the latest tag? is git have any notion of time when it comes to tags?21:52
corni left21:52
Ilari Alien_Freak: Annotated/signed tags have timestamps, but that's about it...21:52
vvsh joined21:53
ph^_ left21:53
Alien_Freak okay.. that's a new concept for me... a signed tag uses a gpg key.. basically just to certify authenticity?21:53
EricInBNE joined21:54
Ilari Alien_Freak: Yeah.21:54
wwalker left21:55
jrmuizel left21:56
hakunin left21:56
travisjeffery joined21:56
reidab_ joined21:56
bobbyw joined21:56
psoo left21:57
snearch joined21:58
charon what CFLAGS do i specify to catch warnings like the one gitster pointed out in http://article.gmane.org/gmane.comp.version-control.git/130272 ? i tried -std=c99 or -std=c89 with or without -pedantic but they just spam lots of unrelated warnings21:59
jchris_ joined21:59
jchris left21:59
dwmw2dwmw2_gone21:59
Ryback_ left22:00
bdimcheff left22:00
jrmuizel joined22:00
notjohn left22:00
charon using gcc 4.3.2, i should say22:00
jchris_jchris22:00
travisjeffery left22:00
ciskje left22:00
bcardarella left22:00
kpreid_ joined22:01
hugoxrosa left22:05
spearce charon: in the git repository look at `git show origin/todo:Make`22:06
godsflaw_godsflaw22:06
Guest61392 left22:09
cloudhead left22:09
jrmuizel left22:10
markelik_ left22:10
Ilari spearce: Took any look at those patches (the URL has probably expired by now, and those weren't the latest version)?22:11
charon spearce: hrm. thanks... though that still doesn't help. i gather i should use '-Wall -fwrapv -fno-strict-overflow -std=c99 -Werror' and while that shuts up all except one of the unrelated warnings, it still doesn't warn declaration-after-statement22:11
ah, duh, there's -Wdeclaration-after-statement22:12
keystr0k left22:13
nick_santa joined22:13
reidab left22:13
reidab_reidab22:13
PhilK joined22:15
spearce Ilari: your patch series to add connect-r? i skim read it, eh, i didn't like some of it like assuming there is a bidirectional socket22:16
Ilari spearce: Being able to transport smart protocols fundamentally requires full-duplex socket being available.22:16
^Einstein joined22:17
bobbyw does a post-update hook run as the user that is pushing to remote?22:18
Ilari bobbyw: Yes22:18
bobbyw Ilari: ty22:18
flipmoe joined22:18
Ilari bobbyw: The user on remote side that is.22:18
bobbyw Ilari: yeah, I gotcha, just making sure22:18
Ilari spearce: Or at least half-duplex socket with persistent state on both ends.22:18
suman left22:19
hadees joined22:22
hadees how do i undo everything i've done since the last commit?22:22
Alien_Freak when I do a git config user.signingkey <gpg-key-id> is the gpg-key-id the hex number associated with the key, or the email id associated with the key?22:22
Ilari hadees: 'git reset --hard' (destructive).22:22
Alien_Freak: IIRC, anything gpg can look up.22:23
hadees Ilari, thanks so --soft would just take it out of the log?22:23
Ilari hadees: --soft just manipulates where the branch is without changing anything else.22:23
DrNick left22:23
revans left22:23
tjholowaychuk left22:24
Alien_Freak sweet22:24
\ask joined22:25
mmw left22:27
ctusar left22:28
__iron left22:28
agile joined22:28
Ilari spearce: And "assuming there is a bidirectional socket"? How you think that assumption could be weakened without seriously compromising the entiere purpose of series (being able to fairly easily swap "layers 5 and 6" of smart transports)?22:28
zigovr left22:29
Ilari spearce: One-shot RPC like HTTP is not the normal case. Normal case is (quasi-) full-duplex communication over reliable stream transport.22:29
RobertMeta left22:29
mugwump but you can also fake it with messages and sessions22:30
that way fit into eg cgi requirements22:31
I'm coming in in the middle of the conversation admittedly22:32
Ilari mugwump: Patch series which implements: 1) Being able to declare new protocols with remote helpers, 2) Remote helpers being able to implement smart transport (fetch, push, remote archive) without reimplenting smart protocol logic. 3) Demoting {HTTP,FTP}{,S} fully into remote helpers 4) Some misc bits (remote helpers with --, debug mode, mandatory caps).22:35
johnnyg joined22:36
mugwump ok, I just thought that one of these smart transports was supposed to be able to run as a cgi script22:36
like 'hg' does22:36
or 'hgweb' or whatever it is they use22:36
Ilari mugwump: That's smart-HTTP. This series is about other stuff. Like implementing gits:// or something even more exotic.22:37
RobertMeta joined22:37
Ilari mugwump: Server side cold implement smart transport servers without reimplementing smart procol logic already (assuming persistent connection).22:38
*could22:38
jeckel joined22:39
mugwump turning a requirement for persistent connection into one that doesn't isn't fundamentally hard22:39
you just need to be able to send the server-side state with the response, and read it back on a new request22:40
reidab left22:40
Ilari mugwump: That effectively impossible.22:40
mugwump (assuming you can verify it, of course)22:40
Ilari *That's22:40
PointMan left22:40
mugwump if you've got some struct representing the connection handle, you can just freeze that and send it22:41
spearce Ilari: then use the --stateless-rpc mode, but make it --stateful-rpc. same stream format, just fetch-pack doesn't maintain that req_buf between have rounds.22:41
mugwump it's how seaside fakes a persistent session over http22:42
bobbyw in this example "git@remote:repo.git" where does it look for repo.git, it doesn't seem to be the path of the the login for the git user22:42
mugwump bobbyw: ime it does look there22:42
PhilK Does anyone have a good tutorial or link for merging two forks together? I've got a fork of a project that I want to merge with another fork. (the original has updates that never made it into the fork that I'm using)22:43
Ilari spearce: If the transport needs chunking, I would have the lower layers do it and not complicate git native smart transport code any more.22:43
bobbyw mugwump: so it is effectively "git@remote:~/repo.git" hmm... no dice for me22:43
vvsh left22:44
mugwump maybe check things like pam config and login scripts22:44
bobbyw mugwump: ok thanks22:45
flipmoe left22:45
Ilari spearce: I regard having bidirectional full-duplex socket as common case...22:45
mugwump ilari, why do you say that wrapping up a connection state in some kind of cookie would be impossible?22:46
it would let you keep the assumption that there is bidirectional communication22:46
Ilari mugwump: The connection state on remote end is the entiere git layer 7 server process.22:46
mugwump not really22:47
you could narrow it down to a struct or two22:47
jeckelrevans22:47
Ilari mugwump: That would require dissecting the git protocol far more than what I would be confortable with.22:47
mugwump using a binary blob is a trick to avoid designing a proper representation of course :)22:48
well, currently the only real place where this is required is during revision negotiation right?22:48
there's not that much information to send22:49
ispeak joined22:49
spearce mugwump: already solved in my smart-http series22:49
mugwump ok22:50
hadees left22:50
spearce Ilari: the chunking that --stateless-rpc performs on fetch-pack/send-pack stdout is to the connection helper can safely identify two things:22:50
Ilari spearce: By having client keep the entiere state. Except that in this case, doing that is not an option.22:50
spearce 1) when the program is done sending, and wants to start reading data from the other side22:50
PhilK left22:51
spearce 2) when the program is completely finished, and will now output data intended *not* for the remote, but instead for the helper's caller22:51
vvsh joined22:52
onigiri joined22:52
PointMan joined22:54
bobbyw mugwump: you were right, it does work that way (remote:repo.git), I had a mixup22:55
bremner_ joined22:57
mugwump ideally connection state can be reduced to the minimum amount required to reconstruct it22:58
Azeroth-Work joined22:59
Tricon joined23:00
cannonball left23:00
ixti left23:01
PointMan left23:02
Tricon left23:02
gitte joined23:03
Tricon joined23:03
Ilari mugwump: What if no such reconstruction is needed?23:04
pantsman left23:04
johnnyg left23:05
mugwump as in, you're stateless?23:05
patmaddox joined23:05
Ilari mugwump: As in, connection is stable and both endpoints are stable.23:05
mugwump what do you mean by that?23:05
vvsh left23:06
spearce he means a stateful connection like git:// is today23:06
mugwump oh right I see23:06
Tricon left23:06
mugwump sure, well in that case if you try to tunnel over a protocol then you simply lose23:06
Ilari And most of the stuff client side that gets reused are required for GIT_PROXY and ssh:// anyway.23:06
mugwump over an rpc-like protocol23:06
Yuuhi`` left23:08
Tricon joined23:08
slabbeh left23:08
krawek left23:11
krawek joined23:11
bremner_ left23:12
sonic joined23:12
Tricon left23:13
Tricon joined23:15
Theravadan left23:15
sonic Hi guys. Is there a log of this room I can look at. Need to find some instructions someone told me earlier.23:16
sh1mmer joined23:16
Ilari sonic: See /topic23:16
sonic thanks Ilari23:17
pas left23:17
Leftblank left23:17
pas joined23:17
nevyn___nevyn23:19
Fullmoon left23:20
Tricon left23:20
gitte Ilari: do you know that you actually run this channel?23:21
DrNick joined23:21
Tricon joined23:22
Ilari gitte: Yeah, noticed that I got +o'd23:22
ctusar joined23:22
gitte Ilari: Did you?23:22
Ilari: I would have done that _a long_ time ago, if only I had had the permission to do so...23:23
Ilari: but I guess pasky is not on the "Go" for a change...23:23
DaveIngram left23:24
justin-george left23:25
hobodave left23:25
Tricon left23:27
Ilari gitte: Spearce doesn't seem to like the way I implemented smart protocol channeling in that patch series (interface akin to GIT_PROXY / ssh transparent tunneling)... :-/23:27
hugoxrosa joined23:28
gitte Ilari: haven't read the mailing list after coming back from some social time off yet...23:28
Ilari: do not be afraid to speak up against Git old-timers. From recent experience, I can tell you that they are as wrong most of the time as the rest of us.23:28
fhr left23:28
Ilari gitte: Don't bother searching that. I don't have workable E-Mail (ouch).23:29
gitte Huh?23:29
revansrevans|away23:29
spearce its Ilari, the only git without email. :-)23:29
gitte Ilari: Did I not communicate with you at some stage?23:30
Tricon joined23:30
gitte spearce: hellooooo!23:30
gitte /nicks spearce gitney23:30
sonic left23:30
altrux left23:31
Ilari And that darn ISP upgraded their systems and I can't register to control panel where I could set up Mail.23:31
gitte Ilari: use another mail account, then.23:32
bobbyw is there a way in a post-* hook to work with the files that just got pushed instead of the previous version that was there from the last push?23:32
Ilari I'm supposed to have activation ID and password to register there, but they no longer work.23:33
gitte Ilari: then screw them.23:33
Ilari: plenty of other mail providers.23:33
spearce hasn't used an ISP email in 13 years23:33
gitte Ilari: more reliable ones, even. Try big G, for example.23:33
Ilari I hate webmail.23:34
sitaram imap23:34
bobbyw ah... unset GIT_DIR23:34
mjansen left23:34
Ilari sitaram: Imap is for reading only.23:34
spearce smtp is for sending.23:34
use smtp.23:34
big G for example allows smtps for sending. i use it.23:35
gitte Ilari: I do not use big G via web most of the time. Gmail, I use via pop3.23:35
sitaram Ilari: I meant you can use gmail without a browser completely -- use imap to read and smtp to post, I think23:35
gitte (and stmps, that's right))23:35
snearch left23:35
spaceonline joined23:35
Ilari The port is called 'submission'?23:36
Tricon left23:36
gitte Step 1 of 3: Downloading source code history (Running 0/2)23:36
Oops.23:36
$ grep submission /etc/services23:37
submission 587/tcp # Submission [RFC4409]23:37
gitte hates the fact that there are two clipboards in GNOME, and it makes you know it.23:37
Ilari Middle click and edit -> paste are supposed to paste different stuff...23:38
Tricon joined23:38
gitte Ilari: sometimes there is not a middle button.23:40
Ilari: for some reason, a button is very similar to a key. An unlabeled one.23:41
secoif joined23:41
spearce get a sticker, write on it, attach to the button, now its just like a key.23:41
gitte Ilari: almost like statistics: you hit a key, and you never know what comes out of it!23:41
Guest12140 cut and paste is a bad idea anyways23:41
gitte spearce: but then it is wrong almost all of the friggin time.23:41
Guest12140 the computer should just automaticallyknow what i need to paste23:41
Ilari No middle button in mouse but full 102+-key keyboard: (IIRC), shift-alt-numlock, KP-*, KP-5.23:42
gitte Guest12140: your nickname "Scotty"?23:42
DaveIngram joined23:43
ispeak left23:44
Ilari And that is feature of X server itself, so the event does not appear synthetic (matters with some programs).23:44
LiamH left23:45
gitte Ilari: which is a serious flaw in those programs23:45
revans|awayrevans23:46
DaveIngram left23:46
spearce Ilari: i'm not entirely against the idea of a connect-r in a helper, i just think that i uncovered some issues with the pipelines that made me use a chunking system between the smart protocol handler (fetch-pack or send-pack) and the helper, as there is also a protocol required between the helper and the caller (git-fetch or git-push) that the helper needs non-smart protocol data from the smart protocol handler to implement.23:46
samferry left23:46
Tricon left23:46
mjf left23:47
Ilari spearce: It might be useful (but not strictly mandatory) to have chunking data available. But then, the chunking system would have to be pretty simple or it would be almost better to follow packetization of transport stream.23:48
mattayers joined23:49
spearce the problem is you have this flow: git-fetch <--> helper <--> git-fetch-pack23:49
get data from git-fetch-pack to git-fetch without the helper having to grok it.23:49
don't forget you also have helper <--> remotesockethingyonlyitknows23:49
gitte thinks that IRC sometimes beats email, gittus' impression notwithstanding23:50
spearce can't do asciiart on irc23:50
Ilari I haven't looked at how transport streams bundle up in practice with strace, but I would guess that flushing on each read wouldn't suck too badly.23:51
madewokherd left23:51
qhoxie left23:51
gitte thinks sometimes asciiart just takes time, and is not helpful anyway.23:52
gitte also thinks that there's always a gist23:52
patmaddox left23:53
madewokherd joined23:53
Ilari That might bloat interactive parts, but what really matters is the main pack stream, and that should be bulk transfer anyway.23:54
alezandro left23:55
Ilari Linux has pipe buffer of 4KiB in older versions and I have also seen 64KiB pipe buffers. That should fit entiere sideband-64k frame.23:56
gitte Ilari: what about non-Linux?23:56
upul joined23:56
Ilari Non-Linux systems should also have reasonable pipe buffers... Does many systems have <4KiB pipe buffers?23:57
asciant joined23:57
Fikeis left23:57
sh1mmer left23:57
asciant the git manpages has git merge as "git merge <branchname>", would my branchname be my most recent commit? Or master?23:58
Ilari asciant: Commit ID of tip of anonymous branch to merge or name of branch to merge.23:58
asciant ilari: worked thanks :023:59

Logs Search ←Prev date Next date→ Channels Documentation