**** BEGIN LOGGING AT Mon Sep 23 20:30:33 2002 Sep 23 20:30:33 --> Mark27 ([Gh5dnFwdf@line106-15.adsl.actcom.co.il) has joined #aegis Sep 23 20:30:33 --- Topic for #aegis is aegis.sf.net - a transaction-based software configuration management system. Sep 23 20:30:33 --- Topic for #aegis set by ChanServ at Mon Sep 23 20:17:46 Sep 23 20:30:38 Hi Sep 23 20:30:48 Shlomi Fish here ? Sep 23 20:30:51 Hi, I'm Shlomi Fish Sep 23 20:30:54 Hello Sep 23 20:30:56 I'm mark Sep 23 20:31:00 rindolf is my alter-ago. Sep 23 20:31:01 I've got your email Sep 23 20:31:02 Hi mark Sep 23 20:31:07 Yes. Sep 23 20:31:13 It sounds elvish... Sep 23 20:31:36 Listen, I'm too tired now to actually do anything, but I'd like to get some concepts straights. Sep 23 20:31:51 Actually, Rindolf was the name of a Dwarf Warrior I played. Sep 23 20:31:54 (Ok. BTW: You probably know mulix - I worked with him in Qlusters) Sep 23 20:32:10 Ok...:) Sep 23 20:32:13 And of a Perl dialect I'm developing Sep 23 20:32:18 I know Muli, yes. Sep 23 20:32:32 Does muli knows aegis? Sep 23 20:32:36 Nope Sep 23 20:32:40 I know he uses BitKeeper. Sep 23 20:32:59 If you say so (I don't know what he uses) Sep 23 20:33:07 (I use Aegis extensivly) Sep 23 20:33:15 OK. I managed to get the calculator project to work. Sep 23 20:33:26 calculator ?!? Sep 23 20:33:34 But I want to import my i-bex project Sep 23 20:33:44 calculator: the example aegis project Sep 23 20:33:50 Oh...:) Sep 23 20:33:52 Ok. Sep 23 20:33:56 Make+RCS Sep 23 20:34:05 Before you start let me show you the pitfalls. Sep 23 20:34:14 Cool. Sep 23 20:34:33 The BIGGEST problem/advantage of aegis is the multi-path feature Sep 23 20:34:46 Which means? Sep 23 20:34:58 Ok. Let me give an example Sep 23 20:35:05 lets say that you want to patch the linux kernel Sep 23 20:35:13 Ack Sep 23 20:35:21 You copy a full version of the kernel beside a modified one. Sep 23 20:35:27 the diff and send the patch off Sep 23 20:35:31 then diff and send the patch off Sep 23 20:35:46 OK. Sep 23 20:35:51 This means that even for changing a SINGLE source file you need to have two copies of the ENTIRE kernel Sep 23 20:36:06 Peter Miller wanted this out of the way... Sep 23 20:36:09 Ahah. Sep 23 20:36:29 This means he wanted the "size" of the change to be proportional to the size of source+products that you're actually changing Sep 23 20:36:34 So, there are two parallel pathes. Sep 23 20:36:45 There is a "search path" for aegis... Sep 23 20:36:55 It points first to the directory where you are working Sep 23 20:36:59 and then to the master source Sep 23 20:37:16 And there is a patch in the middle Sep 23 20:37:19 This means that the directory where you are working only contains the changed files and the relevant products Sep 23 20:37:25 No - there no patch Sep 23 20:37:30 No - theres no patch Sep 23 20:37:48 Ok. Lets say that I want to work on the Linux kernel on Aegis Sep 23 20:37:55 You can phone me at 03-6424668 if you want Sep 23 20:38:02 Sure. Sep 23 20:38:05 I'm calling Sep 23 20:38:43 It's busy Sep 23 20:39:00 Yes, my sister is on. Sep 23 20:39:12 Ok. Let her talk...:) Sep 23 20:39:41 What I was saying is that if you want to work on 5 different patch to the kernel in parallel Sep 23 20:39:47 In any case, I'm too tired to get anything into this head. Sep 23 20:39:53 s/this/my/ Sep 23 20:40:00 you don't have to use diskspace=kernel space * 5...:) Sep 23 20:40:10 Ok...:) Sep 23 20:40:13 Please send me an E-mail with all your info Sep 23 20:40:21 Sure...:0 Sep 23 20:40:41 I'll contact you when I need help. Sep 23 20:40:45 BTW: Aegis is an excellent choice. I don't know the internals of BK but Aegis is terrific for very robust development Sep 23 20:40:46 Just a question: Sep 23 20:40:56 OK Sep 23 20:40:59 A question: Sep 23 20:41:16 Shoot Sep 23 20:41:22 Let's suppose I have a perl script that starts with #!/usr/bin/perl -w Sep 23 20:41:39 ok Sep 23 20:41:58 and I want developer choo, who uses an old installation of perl to work on it without the -w switch. Can it be done in Aegis? Sep 23 20:42:31 This has nothing to do with Aegis Sep 23 20:42:44 First - I usually don't code the path to perl in the first line Sep 23 20:42:52 I use a first line like this "#!/usr/bin/env perl" Sep 23 20:43:08 This means that the script will run under the first perl in the users path Sep 23 20:43:25 (this is much more robust as the user may have installed a different perl that he prefers) Sep 23 20:43:32 Mark27: I know, but let's suppose everybody is happy with #!/usr/bin/perl Sep 23 20:44:00 It could be re-incarnated in all sort of ways. Sep 23 20:44:08 I want an in-trigger and out-trigger. Sep 23 20:44:16 Ok. Let me ask you another question - how would you do it in CVS ? Sep 23 20:44:41 What I'm saying is that you have to use the regular perl mechanisms... Sep 23 20:44:54 (I think you can pass options to the perl interpreter using an envrionment variable) Sep 23 20:44:56 I'll have a separate diff, with a script that checks upon an env var, and applies it only if the env var is set. Sep 23 20:45:17 I.e: the script would be a template for the final script. Sep 23 20:45:40 Ok. Then you mean that the script is not a source but rather a product...:) Sep 23 20:45:55 Exactly. Sep 23 20:45:56 The actual script has something like [% perl_runline %] in the first line Sep 23 20:46:07 OK. Sep 23 20:46:17 And it gets transferred using Perl Template toolkit or autoconf to the script which is run... Sep 23 20:46:21 There is no problem. Sep 23 20:46:28 Just define this rule in your build system. Sep 23 20:46:32 It has nothing to do with Aegis... Sep 23 20:46:33 And can Aegis do it transparently? Sep 23 20:46:43 Aegis is NOT a build system Sep 23 20:46:51 Make is your build system (if you are using make that is) Sep 23 20:46:55 If you have a rule like: Sep 23 20:47:02 myscript.pl: myscript.input Sep 23 20:47:15 I see. Sep 23 20:47:16 trasform myscript.input > myscript.pl Sep 23 20:47:32 In your Makefile then aegis will run the build process and after the build process you could run myscript.pl Sep 23 20:48:02 And what if I modify myscript.pl? Sep 23 20:48:10 Would you modify an object file ? Sep 23 20:48:12 :) Sep 23 20:48:24 You don't modify products unless you want them overwritten the next time around Sep 23 20:48:39 No, but I was hoping for a trigger like that - Sep 23 20:48:52 a patch that would be applied upon checkout Sep 23 20:48:58 and would be unapplied upon checkin Sep 23 20:49:12 Oh!!!! Sep 23 20:49:14 I get it!!! Sep 23 20:49:19 Yes - you could do that...:) Sep 23 20:49:28 With Aegis? Sep 23 20:49:43 There is a hook in aegis for checkout and checkin and you can do ANYTHING you want to the content of the file in the script... Sep 23 20:49:54 Let me give an example Sep 23 20:50:02 I have a history listing in every file in my project Sep 23 20:50:09 An example would not be necessary at this point. Sep 23 20:50:12 When ever I checkout a file I add a history entry Sep 23 20:50:17 Peter Miller kicks ass! Sep 23 20:50:30 Did you have any experience with BitKeeper? Sep 23 20:50:37 Nope...:) Sep 23 20:50:54 I think (from reading LKML) that BK is better at patches... Sep 23 20:51:04 Mark27: you should try it sometimes for something not so serious. Sep 23 20:51:07 (Removing old patches after new ones went in and various other stuff) Sep 23 20:51:25 The biggest strength of Aegis is that it helps you do things right... Sep 23 20:51:27 It feels very slick, and is very nice. Sep 23 20:51:35 (BK doesn't have that) Sep 23 20:51:52 For instance: aegis won't let you commit changes which don't compile or pass tests Sep 23 20:52:32 And we should rob ideas out of it. Sep 23 20:52:33 Also the multi-path feature is an advantage as far as I see it... Sep 23 20:53:03 OK. Got to sleep now. Talk to you later. Sep 23 20:53:08 (NO other, and I mean NO OTHER SCS has that feature...:) Sep 23 20:53:27 Ok. Good night. I'll send you my contact info... Sep 23 20:53:31 It was fun. Sep 23 20:53:41 Sure...:) Sep 23 20:53:43 Yes, please do that, I'll keep your last E-mail. Sep 23 20:53:50 Bye!!! Sep 23 20:53:52 Bye bye Sep 23 20:53:55 <-- rindolf has quit ("[x]chat") **** ENDING LOGGING AT Mon Sep 23 20:54:02 2002 **** BEGIN LOGGING AT Wed Sep 25 15:00:18 2002 Sep 25 15:00:18 --> Mark27 ([yTL58nCyc@line106-15.adsl.actcom.co.il) has joined #aegis Sep 25 15:00:18 --- Topic for #aegis is aegis.sf.net - a transaction-based software configuration management system. Sep 25 15:00:18 --- Topic for #aegis set by ChanServ at Wed Sep 25 14:36:29 Sep 25 15:00:23 Shlomi ? Sep 25 15:00:55 >rindolf< CTCP TIME Sep 25 15:01:10 >rindolf< CTCP FINGER Sep 25 15:02:14 Hello ?!? Sep 25 15:11:33 Hi Mark Sep 25 15:11:36 Mark27: Hi! Sep 25 15:14:41 Hi Sep 25 15:14:51 (Went to the bathroom) Sep 25 15:14:58 Hi Sep 25 15:15:06 You can ignore my DCC Chat offer if you wish Sep 25 15:15:21 Can I call you somewhere? Sep 25 15:15:22 Ok. It's simpler to talk here. Sep 25 15:15:51 You can try but I think my portable phone is dead (battery). Sep 25 15:15:58 OK. I can send you the BitKeeper snapshot as of now. Sep 25 15:16:16 BitKeeper snapshot of what ? Sep 25 15:16:17 BTW, it seems my projects repositories somehow disappeared from bkbits.net Sep 25 15:16:26 What ?!? Sep 25 15:16:26 Of the code I'm working on. Sep 25 15:16:30 Did you have backups ? Sep 25 15:17:01 I did. Of the entire repositories. But still they were filled with data, and I did not instruct Larry & Co. to remove them. Sep 25 15:17:22 Did they do that on purpose ? Sep 25 15:17:41 I have no idea. I sent an E-mail to support@bitkeeper.com and received no reply as of yet. Sep 25 15:17:42 (I thought bkbits.net was a sourceforge like deal for GPLd code...) Sep 25 15:18:05 Which is expected, because they are on San-Fransisco Time Sep 25 15:18:20 Oh ok. Sep 25 15:18:30 It was sort-of. But once I opened a repository and did not fill it in and it also disappear. Sep 25 15:19:02 This I can understand (they don't to hold hundreds of empty repositories) Sep 25 15:19:03 I don't know. I like McVoy less and less as time goes by. Sep 25 15:19:19 Me too Sep 25 15:19:30 But my repositories were filled in and quite active Sep 25 15:19:47 That's a whole different ball game. Do they do backups on a regular basis ? Sep 25 15:19:48 I did piss him off quite a bit Sep 25 15:19:57 They do, yes. Sep 25 15:20:12 HOPEFULLY it was an honest mistake...:) Sep 25 15:20:16 In any case, nothing important was lost Sep 25 15:20:34 Never mind. I'd like to try Aegis again. Sep 25 15:20:40 Ok. Shoot. Sep 25 15:20:44 I looked at arch, and could not make heads nor tails of it. Sep 25 15:20:56 It is way too complicated, even for me? Sep 25 15:21:03 Do you read "Joel on Software"? Sep 25 15:21:03 Ok. Can't help you with that. Never looked at it. Sep 25 15:21:22 No I didn't. Can you give me a URL ? Sep 25 15:21:37 Sure. http://www.joelonsoftware.com/ Sep 25 15:21:57 Is this an article or a slashdot type system ? Sep 25 15:22:01 Joel Spolsky is contreversial, but I think he is also very wise. At least most of the time. Sep 25 15:22:17 He has a diary there. Sep 25 15:22:21 Or a weblog Sep 25 15:22:29 But look at the complete archive. Sep 25 15:22:39 He has several articles there. Sep 25 15:22:53 The one about UI Design for Programmers is especially enlightening Sep 25 15:23:14 Ok. I'll check them out. Sep 25 15:23:21 What did he code ? Sep 25 15:24:00 He worked at Microsoft (on Visual Basic for Apps), Viacom and Juno and now has his own software house called FogCreek software. Sep 25 15:24:11 Is he pro open source ? Sep 25 15:24:19 He's also a former Israeli Parachuter, and he's gay? Sep 25 15:24:19 (Or even free source ?) Sep 25 15:24:29 :) Sep 25 15:24:35 Sure, he uses CVS, and admits he has several Linux servers. Sep 25 15:24:40 So I guess it's Yoel... Sep 25 15:24:52 I call him djoel. Sep 25 15:25:07 Ok. I'll read...:) Sep 25 15:25:09 And so does everybody I know, but he insists that it's yoel in Hebrew. Sep 25 15:25:44 Nevermind. Joel once said that "If you don't understand a SPEC - don't worry. Nobody else will". Sep 25 15:26:07 So I'm not too worried about Arch Sep 25 15:26:14 I'll wait for Version 1.2.0 Sep 25 15:26:36 Sounds reasonable. Sep 25 15:26:52 I translated some of Joel's articles for him to Hebrew with help from the good Hackers-IL guys Sep 25 15:27:09 In any case, let's get to business: getting my project into Aegis. Sep 25 15:27:17 Is "hackers-il" a different list than "linux-il" ? Sep 25 15:27:28 Ok... Shoot Sep 25 15:27:41 Do you have aegis installed ? Sep 25 15:28:23 Ahah. Check: http://groups.yahoo.com/group/hackers-il/ Sep 25 15:28:40 Yep. From the RPM. Could not compile the source RPM because of the Icon. Sep 25 15:28:53 I can send you a snapshot of my work. Sep 25 15:29:17 (regarding hackers-il - I'll join it). Sep 25 15:29:32 Regarding Aegis installation - I never install anything from srpm Sep 25 15:29:36 Basically: it's a perl script, two boards with layouts, several gimp .xcf files, and a perl script that generates pngs out of them. Sep 25 15:29:37 Either from source or from rpm Sep 25 15:29:53 Mark27: hackers-il is lots of fun. Sep 25 15:30:04 IMHO, at least Sep 25 15:30:23 You'll have a better experiece with installing Aegis from sources. Sep 25 15:30:36 After ./configure;make Sep 25 15:30:42 You can check aegis using "make sure" Sep 25 15:30:58 Mark27: Aegis builds using Cook, right? Sep 25 15:31:10 Which will run about 180 tests which last about 40 minutes and makes sure that Aegis is running right on YOUR machine Sep 25 15:31:39 No. You get a makefile. (Peter uses cook but you don't have to know about it) Sep 25 15:32:04 Peter didnt want to make cook a prerequisite to Aegis Sep 25 15:32:19 (that would discouraged a lot of users) Sep 25 15:32:50 OK, went out to check E-mail Sep 25 15:33:07 Ok. Sep 25 15:33:11 Do you know Dave Goehrig? Sep 25 15:33:15 Nope Sep 25 15:33:32 The Perl/SDL guy. Nice guy, but we are complete opposites. Sep 25 15:34:03 In any case, how do I start putting them into Aegis? Sep 25 15:34:10 Did you create a project ? Sep 25 15:34:17 How do I do that? Sep 25 15:34:29 Ok. I guess you didn't...:) Sep 25 15:34:38 Did you add aegis shortcuts to your bash ? Sep 25 15:34:53 (I assume that you are using bash - tell me if you are not) Sep 25 15:34:55 I installed from rpm, so I don't think so. Sep 25 15:35:05 Ok. Good. Sep 25 15:35:09 I use bash, yes. tcsh is crap and zsh is too bloated. Sep 25 15:35:22 Please let me know if you did ANYTHING with aegis up to this point. Sep 25 15:35:37 I unpacked the example with make and rcs Sep 25 15:35:45 And that's it ? Sep 25 15:35:49 and built it to get a nice calculator Sep 25 15:35:54 Yes, that's it. Sep 25 15:36:04 Did you build it as an Aegis project ? Sep 25 15:36:15 What do you mean by that? Sep 25 15:36:16 (did you actually use aegis and created a project for it ?) Sep 25 15:36:22 I just typed make. Sep 25 15:36:36 Ok. Then what you did has nothing to do with Aegis. Sep 25 15:36:52 The idea was to show how to write correct aegis configuration...:) Sep 25 15:36:53 It was on the Aegis site. Sep 25 15:36:57 aedist and all. Sep 25 15:37:08 How did you unpack the aedist file ? Sep 25 15:37:15 (cpio ?!?) Sep 25 15:37:21 The way the webpage said so. Sep 25 15:37:33 Ok. So you DID use Aegis. Sep 25 15:37:45 Let's say I know nothing about Aegis except what you told me. Sep 25 15:37:49 You did something like aegis -Import or something....:) Sep 25 15:37:52 Mark27: yes I di. Sep 25 15:38:06 I know about the -Project and stuff like that Sep 25 15:38:09 Ok. So you probably already have one project registered with aegis (the example one) Sep 25 15:38:25 Ok. Now well set up short cuts for aegis operations for you. Sep 25 15:38:30 Yes. But I want to create an altogether new one for my perl game. Sep 25 15:38:32 do "type ael" on the cmdline Sep 25 15:38:42 Ok... were getting there. Sep 25 15:38:56 (meaning check if ael is a recognized shortcut ?) Sep 25 15:39:02 ael is a function Sep 25 15:39:08 Great...:) Sep 25 15:39:12 ael is a function Sep 25 15:39:12 ael () Sep 25 15:39:12 { Sep 25 15:39:12 aegis -l "$@" -v Sep 25 15:39:12 } Sep 25 15:39:29 All commands in aegis start with "ae" Sep 25 15:39:38 you can do "ae"[tab] to see a list. Sep 25 15:39:39 I noticed that, yes. Sep 25 15:39:56 Mark27: I know. :) Sep 25 15:39:58 ok. Do "ael projects" to see your projects. Sep 25 15:40:23 Geez: lots of junk: example . example.1 test test.2 Sep 25 15:40:33 (I'm sorry if I'm saying things which are obvious I just don't want you to miss anything and think that Aegis sucks as a result...:) Sep 25 15:40:47 Mark27: no problem. Sep 25 15:40:54 ok. Do you want to remove them all ? (I think it would be cleaner that way) Sep 25 15:41:06 Mark27: sure. if it can't hurt Sep 25 15:41:39 It can't hurt if you didn't add anything important to these projects. Sep 25 15:41:53 Mark27: I have a great design for a new logo in mind, but it will probably take me ages to do it in the gimp. Sep 25 15:42:17 That would be cook. Sep 25 15:42:20 That would be cool...:) Sep 25 15:42:24 (sorry...:) Sep 25 15:42:31 Freudian Slip. Sep 25 15:42:40 Ok. Do "aegis -ReMove_PRoject [project name]" to remove any old projects. Sep 25 15:43:10 or for short "aermpr [project_name]" Sep 25 15:43:29 it says for example that there are outstanding changes Sep 25 15:43:41 Ok. This means that you need to remove them too. Sep 25 15:43:53 Mark27: how do I do that? Sep 25 15:44:04 You know forget about cleaning them up for the while. Sep 25 15:44:14 Let's create a new one for I-Bex Sep 25 15:44:18 Ok. Sep 25 15:44:23 (that's the name of the game) Sep 25 15:44:32 aenpr [project_name] Sep 25 15:44:43 OK. Sep 25 15:44:47 (or Aegis -New_Project [project_name]) Sep 25 15:44:48 And where would it put it? Sep 25 15:45:00 Ok. A little explanation. Sep 25 15:45:05 Aegis is running suid. Sep 25 15:45:09 I want it somewhere under $HOME/Projects/Aegis Sep 25 15:45:24 This means there is a user called aegis which is in charge of the repositories Sep 25 15:45:36 That's is exactly the point. Sep 25 15:45:53 The idea in aegis is that you (the user which you are) could NOT change the master source even you want to. Sep 25 15:46:08 (you would only be able to change the source via the regular aegis mechanisms) Sep 25 15:46:27 (and ofcourse - as root - but that is not playing by the rules) Sep 25 15:47:24 OK. Understood. Sep 25 15:47:28 Checkout the -Directory flag if you want everything in your account...:) Sep 25 15:47:37 (But then you don't get the benefits) Sep 25 15:47:46 In any case, is this channel logged? Sep 25 15:47:56 I don't know...:) Sep 25 15:47:58 it could help newbies eventually? Sep 25 15:48:15 I log all my Xchat conversations so I have a transcript. Sep 25 15:48:29 Good. send it to me when you're done. Sep 25 15:48:32 Sure. Sep 25 15:48:55 Did you create the project ? Sep 25 15:49:09 OK. Let's suppose i want to create a project named i-bex under directory ~/Projects/Aegis - what do I do? Sep 25 15:49:19 Exact command please. Sep 25 15:49:29 aenpr i-bex -Directory ~/Projects/Aegis Sep 25 15:49:41 (you may need to create the directory first - I'm not sure) Sep 25 15:50:08 (It's been quite some time since I last created a new project...:) Sep 25 15:50:20 It says: aegis: mkdir("/home/shlomi/Projects/Aegis/", 02755): File exists] Sep 25 15:50:29 Oh ok...:) Sep 25 15:50:32 I guess I need ~/Projects/Aegis/i-bex Sep 25 15:50:40 Then remove it...:) (it probably wants to create it itself...:) Sep 25 15:50:49 Oh. Sep 25 15:51:07 OK. It worked. Sep 25 15:51:16 great. do you see it in ael projects ? Sep 25 15:51:29 Wait a sec, let me play some mp3's (which you can't hear, but at least I can) Sep 25 15:51:39 (it should appear as 3 lines...) Sep 25 15:52:32 Yes i-bex, i-bex.1 and i-bex.1.0 Sep 25 15:53:16 Great. Why is it three lines ? Because it already created a perliminary branch for you...:) Sep 25 15:53:30 (Just in case you forget and want to branch afterwards and find out that you cant...) Sep 25 15:53:32 Mark27: cool. Good human eng. Sep 25 15:54:02 It also gave a version... Sep 25 15:54:21 You don't have to use that version inside your product Sep 25 15:54:35 Mark27: of course. Sep 25 15:54:37 (You can have a totally different version for your product coded inside your product) Sep 25 15:54:44 Now how do I put files in there? Sep 25 15:54:50 BUT!!! It's better to use the aegis version...:) Sep 25 15:55:09 Then you can translate bug reports to the EXACT source that produced the version in question...:) Sep 25 15:55:15 Just a thought...:) Sep 25 15:55:17 Mark27: that's ok I like the ver.txt version management. Sep 25 15:55:45 And I can write a Perl script to look the version Aegis gave me. Sep 25 15:55:51 Ok. But then you need to remmember to bump it yourself and you do the translation between the content of "ver.txt" and the source that produce it yourself...:) Sep 25 15:56:12 Sure you can. There are several perl scripts which interface Aegis (I'm the author of one) Sep 25 15:56:20 You can even write one yourself...:) Sep 25 15:56:33 Mark27: I'll look for one. Sep 25 15:56:40 Finding out what aegis knows about AYNTHING involves running the "aesub" command. Sep 25 15:57:12 Ok. Now you want to start working I guest....:) Sep 25 15:57:23 Mark27: I think we're digressing. Let's put files Sep 25 15:57:32 in the repository I mean. Sep 25 15:57:36 Yes. Sep 25 15:57:41 Create your first change. Sep 25 15:57:48 How? Sep 25 15:58:00 you do it using "aenc" Sep 25 15:58:09 (aegis -New_Change) Sep 25 15:58:12 Where should I run it? Sep 25 15:58:22 Where ever you want. Sep 25 15:58:29 Where do you want to change to reside ? Sep 25 15:58:38 I mean in which directory? Sep 25 15:59:01 Yep... Sep 25 15:59:04 aegis: you must give the project name explicitly to this command Sep 25 15:59:14 That's the error I received Sep 25 15:59:29 I'm sorry that I'm wasting so much of your time. Sep 25 15:59:35 yep. aenc -Project i-bex [change_number] Sep 25 15:59:49 BTW, can I put this transcript online as part of the "Better CVS" project? Sep 25 15:59:49 (you can leave out the change number and accept the default if you want. Sep 25 15:59:58 Sure... Sep 25 16:00:43 OK. Now I have a joe (my favourite editor screen) opened and what do I do there? Sep 25 16:01:07 Does it show various details that you need to fill in ? Sep 25 16:01:14 yes, Sep 25 16:01:28 Ok. You can leave most of them with the defaults. Sep 25 16:01:29 brief_description: initial_version ? Sep 25 16:01:41 Exactly...:) Sep 25 16:02:03 Done: Sep 25 16:02:08 aegis: project "i-bex": change 10: create Sep 25 16:02:16 Great. Sep 25 16:02:23 You are now the proud owner of a change. Sep 25 16:02:36 The change directory is NOT yet created. Sep 25 16:02:43 Good. But I don't have any files in it yet. Sep 25 16:02:53 You have not started development on the change - only stated that such a change needs to exist and logged it Sep 25 16:03:00 Wait...:) Sep 25 16:03:03 ok Sep 25 16:03:16 no start developing it using "aedb" or "Develop Begin". Sep 25 16:03:23 sorry - now start developing it using "aedb" or "Develop Begin". Sep 25 16:03:42 Give it the change number (10) Sep 25 16:04:24 But it does so for the wrong project. Sep 25 16:04:30 "example" Sep 25 16:04:40 Is there anyway I can change the default project to i-bex Sep 25 16:04:41 Ok. ok. Don't panick...:) Sep 25 16:04:45 Yes. Sep 25 16:05:05 export AEGIS_PROJECT=i-bex Sep 25 16:05:18 Now you don't have to put -Project on every command...:) Sep 25 16:05:43 Mark27: Excellent! (to quote that duo whose names I cannot remember) Sep 25 16:05:50 Todd and something Sep 25 16:06:09 In addition export AEGIS_CHANGE=10 may help as well...:) Sep 25 16:06:29 Done. Guard. Sep 25 16:06:31 (so you won't have to specify the change all the time). Sep 25 16:06:42 You can put these in your .bashrc if you want... Sep 25 16:06:56 Of course Sep 25 16:07:02 Changing projects would mean changing these envs. Sep 25 16:07:10 Naturally Sep 25 16:07:22 Another way is to have a ~/.aegisrc with all of those in it... Sep 25 16:07:23 Now how do I put my files there? Sep 25 16:07:35 OK Sep 25 16:07:43 Aegis look at 1. Environment 2. ~/.aegisrc 3. command line Sep 25 16:07:50 Files!!! FILES!!! My kingdom for files. Sep 25 16:07:55 Ok ok... Sep 25 16:07:59 Anything to please the masses. Sep 25 16:08:04 did aedb succeed ? Sep 25 16:08:10 Or stupid old Shlomi. Sep 25 16:08:30 user shlomi is not a developer Sep 25 16:08:36 Oh. yes. Sep 25 16:08:36 aegis: project "i-bex": user "shlomi" is not a developer Sep 25 16:08:44 We have to add you as a developer. Sep 25 16:09:06 use "aend shlomi" Sep 25 16:09:22 aegis: project "i-bex": user "shlomi" is now a developer Sep 25 16:09:34 (the fact that you are the project administrator does not make you a developer since the roles may be played by different UNIX users) Sep 25 16:09:43 great. Sep 25 16:09:47 Now try the aedb again Sep 25 16:10:02 aegis: project "i-bex": change 10: development directory Sep 25 16:10:02 "/home/shlomi/i-bex.C010" Sep 25 16:10:02 aegis: logging to "/home/shlomi/i-bex.C010/aegis.log" Sep 25 16:10:02 aegis: project "i-bex": change 10: user "shlomi" has begun development Sep 25 16:10:07 great. Sep 25 16:10:18 The directory /home/shlomi/i-bex.C010 is your change directory. Sep 25 16:10:25 OK. Sep 25 16:10:31 Go to it... Sep 25 16:10:38 and look at the aegis.log file Sep 25 16:10:39 Done. Sep 25 16:10:51 aegis: project "i-bex": change 10: user "shlomi" has begun development Sep 25 16:10:53 The file contains the last message you got from aegis...:) Sep 25 16:10:59 Great... Sep 25 16:11:05 Now you can ADD FILES!!! Sep 25 16:11:22 create a small file called "sample.txt" in that directory... Sep 25 16:11:29 There at ~/i-bex Sep 25 16:11:39 Exactly... Sep 25 16:11:46 That is the directory where you do the work. Sep 25 16:11:56 The repository is the MASTER source which is now empty... Sep 25 16:11:56 Ok I wrote "Hello World" Hello Aegis there Sep 25 16:12:08 great. now do "aenf sample.txt" Sep 25 16:12:14 (nf= New File) Sep 25 16:12:30 Done Sep 25 16:12:36 And seems to have worked. Sep 25 16:12:58 good. do "ael cf" to see your file... Sep 25 16:13:14 ael cf = "aegis could you please list all files which are part of the current change ?" Sep 25 16:13:31 Project "i-bex" Change 10 Page 1 Sep 25 16:13:31 List of Change's Files Wed Sep 25 15:58:43 2002 Sep 25 16:13:31 Type Action Edit File Name Sep 25 16:13:31 ------- -------- ------- ----------- Sep 25 16:13:31 source create sample.txt Sep 25 16:13:37 Great...:) Sep 25 16:13:39 That's it. Sep 25 16:13:44 You can add all of your files now... Sep 25 16:13:58 OK, will be done. Sep 25 16:14:14 use aenf for all of them... Sep 25 16:14:40 You can remove the "sample.txt" file using "aenfu" = New File Undo. Sep 25 16:14:42 Brrr.. I added an entire directory and it added a lot of temp files. Sep 25 16:14:57 Temp files = files which are not sources ? Sep 25 16:15:11 Mark27: yes . *~ and .swp thingies. Sep 25 16:15:20 Ok. Undo them using "aenfu". Sep 25 16:15:43 Please note that they will be removed from the development directory when you di "aenfu" Sep 25 16:16:34 ael cf Sep 25 16:16:35 Project "i-bex" Change 10 Page 1 Sep 25 16:16:35 List of Change's Files Wed Sep 25 16:01:57 2002 Sep 25 16:16:35 Type Action Edit File Name Sep 25 16:16:35 ------- -------- ------- ----------- Sep 25 16:16:35 source create code/board.txt Sep 25 16:16:37 source create code/board2.txt Sep 25 16:16:39 source create code/i-bex Sep 25 16:16:41 source create images/actor.xcf Sep 25 16:16:43 source create images/chasm.xcf Sep 25 16:16:45 source create images/exit.xcf Sep 25 16:16:47 source create images/gen-images.pl Sep 25 16:16:49 source create images/platform.xcf Sep 25 16:16:51 source create images/tile_base.xcf Sep 25 16:16:53 source create images/tile_u.xcf Sep 25 16:16:55 source create images/wall.xcf Sep 25 16:16:57 source create images/you_win.xcf Sep 25 16:16:58 Great... Sep 25 16:16:59 source create sample.txt Sep 25 16:17:01 Looks good, me thinks. Sep 25 16:17:05 Now, how do I check it in? Sep 25 16:17:14 Or commit it? Whatever the terminology here? Sep 25 16:17:29 The terminology is "integrate the change"... Sep 25 16:17:40 About Terminology: I think sourcesafe uses label for tags Sep 25 16:17:57 OK: how do I integrate? Sep 25 16:17:58 I realy hate sourcesafe...:) Sep 25 16:18:19 Before you integrate I want to ask something... Sep 25 16:18:25 Mark27: so does Joel Spolsky and a lot of Microsoft. They use a variation of Perforce while Joel use CVS, Sep 25 16:18:35 Mark27: shoot! Sep 25 16:18:51 Do you want Aegis to make sure that the project compiles/builds/passes tests when you integrate ? Sep 25 16:19:08 Mark27: not for now. Sep 25 16:19:10 Ok. Sep 25 16:19:15 Mark27: maybe in the future. Sep 25 16:19:18 One more thing before you integrate. Sep 25 16:19:26 Yes? Sep 25 16:19:27 You need to add one more file to the project before you can do that. Sep 25 16:19:39 That file is the aegis configuration for your project. Sep 25 16:19:41 Mark27: OK? What it is? Sep 25 16:19:54 How do I create it? Sep 25 16:19:55 It's called config and it should be at the root of your project (where sample.txt is right now) Sep 25 16:20:07 BYW: you can remove "sample.txt" using "aenfu sample.txt" Sep 25 16:20:21 Any editor you like Sep 25 16:20:32 Create an empty config at first Sep 25 16:20:42 Done. Sep 25 16:20:46 What should I put there? Sep 25 16:20:56 Ok. There are a few things you need to put there. Sep 25 16:21:16 Copy a template of the file from the example projects that you downloaded off the net Sep 25 16:21:28 Do you have fhist installed ? Sep 25 16:22:49 How do I know if I have fhist installed? Sep 25 16:23:08 fhist --version ? Sep 25 16:23:26 fhist: command not found. Sep 25 16:23:54 Ok. You don't have fhist installed. Do you want to use fhist as your history tool ? Sep 25 16:23:55 Where can I get it? Sep 25 16:23:59 (I recommend it...) Sep 25 16:24:14 Yes, I would. It's better than RCS, right? Sep 25 16:24:35 Yes it is...:) Sep 25 16:24:51 Peter Miller is the author Sep 25 16:25:11 You can get it from peters site... Sep 25 16:25:20 You can also use RCS... Sep 25 16:25:40 But I'd rather not. Let me get rhist. Sep 25 16:25:46 s/rhist/fhist/ Sep 25 16:26:03 (Its all up to you - Aegis is independant of the history mechanism which is very good...:) Sep 25 16:27:20 Hmmpf. Pretty slow connection. Sep 25 16:27:40 Should be sourceforged or berliosed. Sep 25 16:27:53 Yes. I agree...:) Sep 25 16:30:35 OK, compilinig it with rpm -tb now. Sep 25 16:30:50 BTW, is fhist better than SCCS? Sep 25 16:31:19 Yep...:) Sep 25 16:31:37 How? Not that I understood SCCS too much. Sep 25 16:31:53 It doesn't have locking (which you don't need since it's the job of aegis) Sep 25 16:32:04 And it handles binary files better Sep 25 16:32:45 OK. fhist is installed. Sep 25 16:33:01 Great. Now get a template based on fhist... Sep 25 16:33:21 OK. Ready and taking orders. Sep 25 16:34:01 Great. Edit the config file Sep 25 16:34:16 Let review the entries... Sep 25 16:34:24 Done. What should I put there? Sep 25 16:35:07 Lets go over every entry... Sep 25 16:35:17 OK. Sep 25 16:35:35 Read them out Sep 25 16:35:45 There are none! Sep 25 16:36:02 Did I miss something? Sep 25 16:36:46 yes. Did you copy the config example from some example project which supports fhist ? Sep 25 16:36:58 No. Sep 25 16:37:01 Should I? Sep 25 16:37:11 Yes...:) Sep 25 16:37:11 Can you give me a URL? Sep 25 16:37:25 The same URL for aegis where you got the Make-SCCS example from Sep 25 16:37:38 Make-RCS, you meant. Sep 25 16:38:37 Right Sep 25 16:38:58 How do I unpack it again? (the web page is a bit more crowded) Sep 25 16:39:07 you can use cpio... Sep 25 16:39:25 I'm not a big cpio expert. Sep 25 16:39:44 Ok. Let me try and find it somewhere here....:) Sep 25 16:41:48 Mark27: Waiting. Sep 25 16:41:57 Ok. Looking for it. Sep 25 16:46:46 I can't seem to find it. Sep 25 16:47:48 I unpacked it using aedist Sep 25 16:48:10 ok. Sep 25 16:48:16 Do you have the config file ? Sep 25 16:48:24 (that's all you need) Sep 25 16:49:17 Where should I find them? Sep 25 16:49:37 The config file ? Sep 25 16:49:45 It's in the root of the distribution you got Sep 25 16:49:47 Yes. Sep 25 16:49:57 Found it ? Sep 25 16:50:28 Just copy it and make it your version... Sep 25 16:50:44 Huoston: we're on. Sep 25 16:50:54 Ok. Lets run through it....:) Sep 25 16:51:02 But will the fact that it is cook based make it not good. Sep 25 16:51:34 Ihave a build_command Sep 25 16:51:46 I have a build_command Sep 25 16:51:54 good. You don't want it to actually build. So put a "yes" there. Sep 25 16:51:57 Which is a cook garbage Sep 25 16:52:05 I know... Sep 25 16:52:09 Instead of what is already there. Sep 25 16:53:19 Exactly. Sep 25 16:53:26 This is the command that aegis runs to build the project Sep 25 16:53:35 What you're saying is "my build always works". Sep 25 16:53:58 (since the command line "yes" always returns an "ALL OK" system code value) Sep 25 16:54:25 (Come to think of it better put "echo" there since yes never terminates) Sep 25 16:54:41 Mark27: I'll put true Sep 25 16:55:28 Even better !!! Sep 25 16:55:32 Next field... Sep 25 16:55:55 development_build_command="true"; Sep 25 16:56:30 (is there a development_build_command in your file ? If not then there is no need to put one) Sep 25 16:59:13 rindolf: ? Sep 25 17:00:04 Yes. Sep 25 17:00:13 What is the next field ? Sep 25 17:00:31 link_integration_directory Sep 25 17:00:42 Oh and I have a bkbits.net update Sep 25 17:01:20 is it set to "true" ? Sep 25 17:04:55 Shlomi - have to go. Be back in 15 min... Sep 25 17:07:05 OK. Thanks god UNIX is mostly stateless. Sep 25 17:07:27 I'll go out biking and talk to you in the evenining. Sep 25 17:07:31 <-- rindolf has quit ("[x]chat") Sep 25 21:45:46 --> rindolf (~shlomi@80.178.35.191) has joined #aegis Sep 25 21:45:55 Mark27: Hello? Sep 25 21:46:16 Hi Sep 25 21:46:30 Hi. Can we proceed from where we left. editing the config file. Sep 25 21:47:45 Sure Sep 25 21:47:52 What entry were we on ? Sep 25 21:48:00 What is this fcomp thing? Do I need to install it too? Sep 25 21:48:08 No. It's part of fhist Sep 25 21:48:16 There were several fhist entries that I skipped. Sep 25 21:48:24 And fmerge? Sep 25 21:48:26 Good. Those are correct. Sep 25 21:48:28 Same thing Sep 25 21:48:39 Now file_template Sep 25 21:48:40 (fhist) Sep 25 21:48:54 Ok. This is a nice feature which you don't have to use. Sep 25 21:49:06 When you do aenf and add a new file which does not yet exist on the disk Sep 25 21:49:13 integrate_begin_exceptions Sep 25 21:49:19 (unlike what you did when you added your project files) Sep 25 21:49:19 ? Sep 25 21:49:31 Then aegis uses a template for the file. Sep 25 21:49:40 You can have a different file template for perl, C, C++ etc... Sep 25 21:49:42 Mark27: Oh OK. Sep 25 21:49:55 What about integrate_begin_exceptions Sep 25 21:50:03 This way most of the boring stuff (copyright, structure etc..) is already written for you Sep 25 21:50:13 You don't need it. Sep 25 21:50:27 Ah. Like a pre-checkout trigger Sep 25 21:50:29 (its files which are to not be put into the baseline after integration) Sep 25 21:50:40 OK, I'll skip it - it's a perl project. Sep 25 21:50:43 Do you want to set the trigget noe ? Sep 25 21:50:49 Do you want to set the trigger now ? Sep 25 21:50:58 Mark27: no. I'll skip it Sep 25 21:51:00 Ok. Sep 25 21:51:16 Anything else interesting in there ? Sep 25 21:51:18 trojan_horse_suspect - I'll leave them as is. Sep 25 21:51:35 No. Sep 25 21:51:43 Yes (it's for being careful about integrating patches from other participatns...) Sep 25 21:52:02 Ok. Youre done. Sep 25 21:52:07 now issue "aeb". Sep 25 21:52:10 (Aegis Build) Sep 25 21:52:12 Mark27: Yes so I realized. Sep 25 21:52:19 It should pass with no problem. Sep 25 21:52:26 I need to set these env vars first. Sep 25 21:52:31 Oh yes. Sep 25 21:52:38 AEGIS_PROJECT and AEGIS_CHANGE Sep 25 21:53:31 Fixed a typo and I'm on. Sep 25 21:53:54 Listen, I'm completely tired right now. Can we stop at this point? Sep 25 21:54:02 Sure Sep 25 21:54:35 Have a nice night...:) Sep 25 21:54:44 You've been a great heko. Send me the transcript. Hopefully I can make a nice quick start guide out of it Sep 25 21:54:48 Yeah, you too. Sep 25 21:54:56 s/heko/help/ Sep 25 21:55:19 Or I can cook a nice quick start guide out of it. Sep 25 21:55:27 ;-) Sep 25 21:55:57 Bye. Sep 25 21:55:59 <-- rindolf has quit ("[x]chat") **** ENDING LOGGING AT Thu Sep 26 03:37:56 2002 **** BEGIN LOGGING AT Thu Sep 26 12:32:31 2002 Sep 26 12:32:31 --> mark ([ZItstduzf@line106-15.adsl.actcom.co.il) has joined #aegis Sep 26 12:32:31 --- card.freenode.net sets mode +n #aegis Sep 26 12:32:31 --- ChanServ sets mode +n #aegis Sep 26 12:32:31 --- ChanServ sets mode +t #aegis Sep 26 12:32:31 --- ChanServ has changed the topic to: aegis.sf.net - a transaction-based software configuration management system. Sep 26 12:32:31 --- ChanServ removes channel operator status from mark Sep 26 12:32:55 When ever you get it rindolf please DCC me so I can see it....:) Sep 26 12:33:11 (Im right here at 12:33 AM thursday..) Sep 26 12:33:31 (Im right here at 12:33 AM thursday..) - sorry 12:23 (my computer time is 10 minutes into the future) Sep 26 14:04:55 --> rindolf (~shlomi@80.178.35.207) has joined #aegis Sep 26 14:05:02 mark:hi Sep 26 14:05:26 Hi Sep 26 14:05:32 Hi Sep 26 14:05:37 I dont get it Sep 26 14:05:45 OK. Let me see, set the AEGIS env vars Sep 26 14:05:48 don't get what? Sep 26 14:05:53 when ever you offer DCC I press accept and X chat doesnt open a DCC tab ?!? Sep 26 14:06:09 Because, I only do that to grab your attention. ;-) Sep 26 14:06:17 Oh....:) Sep 26 14:06:30 I can stop doing that. Sep 26 14:06:43 You are tricky!!! You almost fooled me into going to the xchat development mailing list archive ...:) Sep 26 14:06:57 sorry about that. Sep 26 14:07:21 No. Actually it's good because I didn't configure Xchat to beep or something on new people coming in...:) Sep 26 14:07:35 (So I wouldn't know you arrived otherwise) Sep 26 14:07:38 OK. I'm quite clueless in configuring xchat Sep 26 14:07:46 How do I configure it to log everything? Sep 26 14:07:51 What client do you recommend ? Sep 26 14:07:58 Let me check... Sep 26 14:07:59 I use xchat Sep 26 14:08:16 Settings/IRC/Logging Sep 26 14:08:41 Done. Sep 26 14:08:45 10x Sep 26 14:09:10 Great... (It takes really little space and it's worth it if you want to get something out of a previous conversation...:) Sep 26 14:09:20 OK. Now, the changes I commited were integrated into the repository already, right? Sep 26 14:09:32 It isn't worth it though if you hand out in rooms where there are hundreds of people shouting...:) Sep 26 14:09:41 No. They weren't... Sep 26 14:09:46 You are still in the change Sep 26 14:09:54 Hmm. So how do I submit them? Sep 26 14:09:59 do "ael changes" and you'll see that your change is under development Sep 26 14:10:06 Do you have the old changes Sep 26 14:10:27 s/changes/transcripts/ Sep 26 14:10:28 You have the info about them but they are considered "completed" Sep 26 14:10:36 Oh.... Yes. Sep 26 14:10:42 I'll email them after this one. Sep 26 14:11:00 mark: OK, how do I integrate them? Sep 26 14:11:08 Ok. You need to pass a build first. Sep 26 14:11:11 Do "aeb". Sep 26 14:11:15 (Aegis build). Sep 26 14:11:23 In any specific directory? Sep 26 14:11:42 Doesnt matter (that's the whole beauty of using a system like Aegis) Sep 26 14:11:46 aegis: logging to "/home/shlomi/i-bex.C010/aegis.log" Sep 26 14:11:47 aegis: project "i-bex": change 10: development build started 13:56 Sep 26 14:11:47 aegis: true Sep 26 14:11:47 aegis: project "i-bex": change 10: development build complete 13:56 Sep 26 14:11:56 Great. Your project just built. Sep 26 14:12:05 Now do aede (Aegis development end) Sep 26 14:12:08 At least built virtually Sep 26 14:12:26 (Yes... but you can add other stuff as you go along - creation of ".tar.gz" file or whatever...) Sep 26 14:12:30 aegis: project "i-bex": change 10: found 14 errors, this change remains in the Sep 26 14:12:30 'being_developed' state Sep 26 14:12:38 What ?!? Sep 26 14:12:42 And lots of other stuff beforhand Sep 26 14:12:48 Show me the stuff... Sep 26 14:12:53 (Just a snipplet will do) Sep 26 14:13:01 aegis: project "i-bex": change 10: file "code/board.txt,D" not found Sep 26 14:13:02 aegis: project "i-bex": change 10: the "code/board.txt" file was modified after Sep 26 14:13:02 the last difference, this change must successfully complete another Sep 26 14:13:02 'aegis -Diff' before it can leave the 'being_developed' state Sep 26 14:13:02 aegis: project "i-bex": change 10: file "code/board2.txt,D" not found Sep 26 14:13:02 aegis: project "i-bex": change 10: file "code/i-bex,D" not found Sep 26 14:13:04 aegis: project "i-bex": change 10: file "images/actor.xcf,D" not found Sep 26 14:13:06 aegis: project "i-bex": change 10: file "images/chasm.xcf,D" not found Sep 26 14:13:08 aegis: project "i-bex": change 10: file "images/exit.xcf,D" not found Sep 26 14:13:10 aegis: project "i-bex": change 10: file "images/gen-images.pl,D" not found Sep 26 14:13:11 Oh...:) Sep 26 14:13:12 aegis: project "i-bex": change 10: file "images/platform.xcf,D" not found Sep 26 14:13:14 aegis: project "i-bex": change 10: file "images/tile_base.xcf,D" not found Sep 26 14:13:15 Ok. No prob. Sep 26 14:13:16 aegis: project "i-bex": change 10: file "images/tile_u.xcf,D" not found Sep 26 14:13:18 aegis: project "i-bex": change 10: file "images/wall.xcf,D" not found Sep 26 14:13:20 aegis: project "i-bex": change 10: file "images/you_win.xcf,D" not found Sep 26 14:13:22 aegis: project "i-bex": change 10: this change must successfully complete an Sep 26 14:13:24 'aegis -Test' before it can end development Sep 26 14:13:27 do "aed". It will diff your "change" with the "baseline" (which is now empty) Sep 26 14:13:28 aegis: project "i-bex": change 10: found 14 errors, this change remains in the Sep 26 14:13:30 'being_developed' state Sep 26 14:13:45 aegis: project "i-bex": change 10: difference complete Sep 26 14:13:48 Great. Sep 26 14:13:50 and lots of stuff before it Sep 26 14:14:05 Those are the diffs (You defined how to do them in the "config" file) Sep 26 14:14:13 now "aede" (development end) Sep 26 14:14:31 aegis: project "i-bex": change 10: this change must successfully complete an Sep 26 14:14:32 'aegis -Test' before it can end development Sep 26 14:14:32 aegis: project "i-bex": change 10: found 1 error, this change remains in the Sep 26 14:14:32 'being_developed' state Sep 26 14:14:48 Great. Aegis wants you to test. You don't. Let Aegis know that. Sep 26 14:14:58 How? Sep 26 14:15:00 do "aeca" and change all test requirements to "false". Sep 26 14:15:11 aeca = Aegis change attributes Sep 26 14:15:23 OK. Sep 26 14:15:28 Now aede again? Sep 26 14:15:29 now "aede" (development end) Sep 26 14:15:32 Yes. Sep 26 14:15:46 aegis: project "i-bex": change 10: this change must successfully complete an Sep 26 14:15:47 'aegis -Test' before it can end development Sep 26 14:15:47 aegis: project "i-bex": change 10: this change must successfully complete an Sep 26 14:15:47 'aegis -Test -BaseLine' before it can end development Sep 26 14:15:47 aegis: project "i-bex": change 10: this change must successfully complete an Sep 26 14:15:47 'aegis -Test -REGression' before it can end development Sep 26 14:15:49 aegis: project "i-bex": change 10: found 3 errors, this change remains in the Sep 26 14:15:51 'being_developed' state Sep 26 14:16:03 did you "aeca" ? Sep 26 14:16:11 Before that? Sep 26 14:16:22 Before the aede ? Sep 26 14:16:25 I don't think so. Sep 26 14:16:50 Oh sorry!!!! You need to change the test requirements to true (The attributes are about exemption from tests) Sep 26 14:17:01 OK. Sep 26 14:17:08 When I meant false I meant to tell aegis not to require testing... Sep 26 14:17:30 shlomi:~/i-bex.C010# aede Sep 26 14:17:31 aegis: project "i-bex": change 10: development completed Sep 26 14:17:31 shlomi:~/i-bex.C010# Sep 26 14:17:35 Great !!!! Sep 26 14:17:40 You finished development. Sep 26 14:17:48 This does NOT mean that your change is integrated...:) Sep 26 14:17:49 I use # as my prompt. (don't worry - I'm not root - I just hate $) Sep 26 14:17:59 mark: OK. Sep 26 14:18:11 It means that it is now supposed to pass review and then integration Sep 26 14:18:13 Now how do I integrate it? Sep 26 14:18:44 do "aerpass" to pass review (there is a way to disable revies completely but I forgot how - need to look it up in the docs) Sep 26 14:18:55 "aerpass" = Aegis review pass Sep 26 14:19:11 aegis: project "i-bex": user "shlomi" is not a reviewer Sep 26 14:19:14 Great. Sep 26 14:19:20 Man, aegis is very pedantic Sep 26 14:19:35 aenr shlomi (add shlomi as a reviewer) Sep 26 14:19:49 Yes. It is pedantic because the reviewer could be a different UNIX user Sep 26 14:19:52 aenr: command not found Sep 26 14:20:13 maybe you meant aenrv Sep 26 14:20:18 Exactly!!! Sep 26 14:20:34 OK, I'm now a reviewer Sep 26 14:20:35 (It's been about a year since I last did it). Sep 26 14:20:39 Great. now aerpass. Sep 26 14:20:54 aegis: project "i-bex": change 10: the developer of a change may not also Sep 26 14:20:55 review it Sep 26 14:21:13 ok ok. This is pedantic by aegis but can be over ridden. Sep 26 14:21:24 Great, how? Sep 26 14:21:34 do "aepa" and allow developers to review. While you are at it allow developers to integrate too. Sep 26 14:21:41 aepa = aegis project attributes. Sep 26 14:22:08 Set all to true. Sep 26 14:22:11 Great. Sep 26 14:22:15 Now aerpass again. Sep 26 14:22:22 aegis: project "i-bex": change 10: passed review Sep 26 14:22:30 Great. Your change is now ready for integration. Sep 26 14:22:32 Now my change is integrated? Sep 26 14:22:37 Oh OK Sep 26 14:23:05 (What you have to realize that there may be dozens of developers working on the same project submitting changes and the integrator is the one that gets to choose which go in and in what order) Sep 26 14:23:20 (You will now take the role of Linus and decide to integrate your change) Sep 26 14:23:24 BTW, regarding your "ultimate SCM". You may consider using XBase instead of SQL. It would be faster. Sep 26 14:23:40 mark: OK. Sep 26 14:23:42 There are reasons for SQL...:) Sep 26 14:23:50 do "aeib" (aegis integrate begin) Sep 26 14:24:03 As usual: Sep 26 14:24:08 aegis: project "i-bex": user "shlomi" is not an integrator Sep 26 14:24:17 (It may complain that you are not an integrator and so aeni shlomi) Sep 26 14:24:42 OK. user shlomi is now an integrator Sep 26 14:24:45 Great. Sep 26 14:24:48 now "aeib". Sep 26 14:25:02 aegis: project "i-bex": change 10: linking baseline to integration directory Sep 26 14:25:03 aegis: project "i-bex": change 10: applying the change to the integration Sep 26 14:25:03 directory Sep 26 14:25:03 aegis: logging to "/home/shlomi/Projects/Aegis//delta2303.001/aegis.log" Sep 26 14:25:03 aegis: project "i-bex": change 10: integration has begun Sep 26 14:25:10 Great. What aegis did is this: Sep 26 14:25:22 1. It created a temp directory where the integration will take place. Sep 26 14:25:31 2. It put the baseline there (currently nothing) Sep 26 14:25:38 3. It applied your change on top of the baseline. Sep 26 14:25:51 OK. Sep 26 14:25:54 It is now ready to build a clean version and commit it. Sep 26 14:25:57 do "aeb". Sep 26 14:26:06 (Aegis build) Sep 26 14:26:10 aegis: project "i-bex": change 10: you must create a "config" file Sep 26 14:26:26 Did you not have a config file in your development directory ? Sep 26 14:26:52 I did Sep 26 14:26:58 Did you aenf it ? Sep 26 14:27:02 (Tell aegis about it ?!?) Sep 26 14:27:04 Let me see. Sep 26 14:27:09 (do ael cf) Sep 26 14:27:19 shlomi:~/i-bex.C010# aenf config Sep 26 14:27:20 aegis: appending log to "/home/shlomi/Projects/Aegis/delta2303.001/aegis.log" Sep 26 14:27:20 aegis: project "i-bex": change 10: this change is in the 'being_integrated' Sep 26 14:27:20 state, it must be in the 'being developed' state to create new files Sep 26 14:27:20 with it Sep 26 14:27:33 You can't do that now... That will be cheating...:) Sep 26 14:27:48 Ahhh. Sep 26 14:27:50 You can't alter files in a change once they are submitted for review and integration. Sep 26 14:28:17 (What if you alter things and they break the project ? the whole point of having you build and test is so that your change does NOT break the project) Sep 26 14:28:21 So I'll have to rollback the change? Sep 26 14:28:28 Exactly. Sep 26 14:28:31 do "aeifail" Sep 26 14:28:36 (integration fail) Sep 26 14:28:54 What should I write in the editor? A comment. Sep 26 14:29:12 This is a comment by the integrator to the developer about why he failed the integration... Sep 26 14:29:24 Write whatever you want (you are playing all parts here). Sep 26 14:29:44 OK. I said that I did not include the config file. Sep 26 14:29:59 Great. If you config it right it will send the developer email with this in it...:) Sep 26 14:30:05 Now, all over again. I don't recall the command by heart. Sep 26 14:30:24 First go to your change and "aenf config" Sep 26 14:30:36 Done Sep 26 14:30:48 do "ael cf" and make sure you see "config" there. Sep 26 14:31:00 OK. it is. Sep 26 14:31:05 Actually make sure that every file you want is there and that there are no junk files there Sep 26 14:31:23 Great. Now aeb. Sep 26 14:31:27 (Build) Sep 26 14:31:34 OK. Sep 26 14:31:40 now "aede" (development end) Sep 26 14:31:55 now "aerpass" (review pass) Sep 26 14:31:56 aegis: project "i-bex": change 10: file "config,D" not found Sep 26 14:31:56 aegis: project "i-bex": change 10: the "config" file was modified after the Sep 26 14:31:56 last difference, this change must successfully complete another 'aegis Sep 26 14:31:56 -Diff' before it can leave the 'being_developed' state Sep 26 14:31:56 aegis: project "i-bex": change 10: found 2 errors, this change remains in the Sep 26 14:31:57 'being_developed' state Sep 26 14:32:06 Oh ok. do "aed". Sep 26 14:32:14 did aerpass Sep 26 14:32:16 (to diff your change) Sep 26 14:32:24 egis: logging to "/home/shlomi/i-bex.C010/aegis.log" Sep 26 14:32:25 aegis: fcomp -w /dev/null /home/shlomi/i-bex.C010/config -o Sep 26 14:32:25 /home/shlomi/i-bex.C010/config,D Sep 26 14:32:25 aegis: project "i-bex": change 10: difference complete Sep 26 14:32:35 good. Now aede (development end) Sep 26 14:32:48 aegis: project "i-bex": change 10: development completed Sep 26 14:32:52 aerpass Sep 26 14:32:59 again? Sep 26 14:33:13 (it didn't succeed the first time - you were in development and not in review) Sep 26 14:33:17 (see the log) Sep 26 14:33:20 aegis: project "i-bex": change 10: passed review Sep 26 14:33:27 good. aeib (begin integration) Sep 26 14:33:40 aegis: project "i-bex": change 10: linking baseline to integration directory Sep 26 14:33:41 aegis: project "i-bex": change 10: applying the change to the integration Sep 26 14:33:41 directory Sep 26 14:33:41 aegis: logging to "/home/shlomi/Projects/Aegis//delta2348.001/aegis.log" Sep 26 14:33:41 aegis: project "i-bex": change 10: integration has begun Sep 26 14:33:45 great. Sep 26 14:33:49 Now aeb to build. Sep 26 14:33:59 aegis: appending log to "/home/shlomi/Projects/Aegis/delta2348.001/aegis.log" Sep 26 14:33:59 aegis: project "i-bex": change 10: integration build started 14:19 Sep 26 14:33:59 aegis: cd /home/shlomi/Projects/Aegis/delta2348.001 Sep 26 14:33:59 aegis: true Sep 26 14:33:59 aegis: project "i-bex": change 10: integration build complete 14:19 Sep 26 14:34:06 Great. Sep 26 14:34:14 Now aeipass (aegis integration pass) Sep 26 14:34:35 egis: project "i-bex": change 10: adjusting file modification times Sep 26 14:34:35 aegis: project "i-bex": change 10: discarding old directories Sep 26 14:34:35 aegis: project "i-bex": change 10: integrate pass Sep 26 14:34:41 That's the final stuff Sep 26 14:34:43 It's now integrated... Sep 26 14:34:47 That's it. Sep 26 14:34:52 Hallelujah! Sep 26 14:35:03 If you want to change anything you need to open a new change with "aenc" (Aegis new change) Sep 26 14:35:05 Now I want to make another change. Sep 26 14:35:24 And how do I checkout files? Sep 26 14:35:30 Remmebmer to change your environment variable AEGIS_CHANGE to point to the new change number Sep 26 14:35:36 aecp (Aegis copy file) Sep 26 14:35:50 Then they will be in your change and you can edit them Sep 26 14:35:57 Before that your change directory will be empty Sep 26 14:35:58 I must say BitKeeper was much less of an overkill. Sep 26 14:36:10 Yes. But take heed of this: Sep 26 14:36:19 1. Adding shlomi for everything is a one time deal. Sep 26 14:36:32 2. The reveiw phase can be discarded and you wont have to pass through it Sep 26 14:36:46 3. the config file was a one time deal Sep 26 14:37:01 mark:of course. Sep 26 14:37:09 So you actually did much more than what you will usually do to get a change in. Sep 26 14:37:12 I suppose I'll get used to aegis eventually. Sep 26 14:37:31 I want to emphasize something: Sep 26 14:37:45 The most important aspects of Aegis in my mind is the build and test stuff. Sep 26 14:37:50 Aegis requires that you pass them. Sep 26 14:37:58 You can put anyhing in them. Sep 26 14:38:06 You can check that every file has a "copyright" notice. Sep 26 14:38:11 You can build C sources Sep 26 14:38:19 You can verify that all perl files have pod documentation. Sep 26 14:38:35 And Aegis will force you time and again to pass all of those when you change stuff... Sep 26 14:38:44 OK. And I can make sure my HTML files are XHTML 1.0 Strict! Sep 26 14:38:49 ;-) Sep 26 14:38:51 I do that all the time.... Sep 26 14:38:59 (it's part of my build process) Sep 26 14:39:09 Let me tell you what I use the build and test of aegis for: Sep 26 14:39:29 1. I check that all C++ classes are words in the dictionary catenated with first capital letter. Sep 26 14:39:33 2. I run lint. Sep 26 14:39:45 3. I check all pod documentation and embed history from aegis into the pod. Sep 26 14:39:52 4. I spell check documents. Sep 26 14:40:10 5. I convert Docbook files into html,ps,pdf,dvi and whatever. Sep 26 14:40:19 6. I produce a "tar.gz" distribution of my project. Sep 26 14:40:31 7. I check XML files according to DTD. Sep 26 14:40:40 And numerous other things which I don't remmember... Sep 26 14:40:48 Cool. Sep 26 14:41:05 At the moment I don't need any tests. Sep 26 14:41:09 That's the good thing. You do it once and aegis keeps nagging you about them... Sep 26 14:41:23 The software solves puzzles right ? Sep 26 14:41:27 I just need code in -> code out -> modify code Sep 26 14:41:34 LM-Solve, yes. Sep 26 14:41:55 Ok. How about a simple perl script that checks a specific instance is solved right ? Sep 26 14:41:57 Oh no. what I added now, was i-bex, which is a StoneAge clone. Sep 26 14:42:08 Oh. Ok. Sep 26 14:42:18 mark: I can check that it is solvable, yes. Sep 26 14:42:29 That would be great for the other project then. Sep 26 14:42:43 The thing is that sometimes someone points out a bug to you Sep 26 14:42:49 You think that the bug is trivial Sep 26 14:42:53 You fix it. Sep 26 14:42:56 Listen, at the moment I'm in "let's get to business, I'm a super-dummy" aegis user mode. Sep 26 14:43:15 And you rush to release a new version only to find out a day later you broke the whole code Sep 26 14:43:26 I'll learn more features as I get therer. Sep 26 14:43:30 Ok. Sep 26 14:43:34 mark: granted! Sep 26 14:43:45 But my software for the while is not mission critical. Sep 26 14:43:58 Aegis will prevent this scenario from happening... Sep 26 14:44:06 It doesn't really matter. Sep 26 14:44:26 If your users don't get broken versions they learn to trust you more and they confidence in your software Sep 26 14:44:32 (That's important as well) Sep 26 14:44:35 mark: that's OK. Like I said, one step at a time. Or as Joel Spolsky used to say "Fire and Motion". Sep 26 14:44:47 For instance - that is the reason that Aegis itself is so god damn stable Sep 26 14:45:00 (Peter has about 180 tests that he runs before every release) Sep 26 14:45:01 mark: granted. Sep 26 14:45:08 (I never saw a bug twice) Sep 26 14:45:25 (Once a bug is discovered peter adds a test specifically to detect if that bug is there) Sep 26 14:45:36 (Then you know that you will never see it again...) Sep 26 14:45:59 mark: unfortunately for me, in Freecell Solver it's hard to detect bugs. Once I made things better, and did not know what I did to do so. Sep 26 14:46:02 (And I've been following Aegis for 5-6 years now) Sep 26 14:46:11 I keep changing the solving algorithm Sep 26 14:46:25 That is ok. But there a simple way to check that a solution is right ? Sep 26 14:46:36 Write the code that checks a solution and run it on the result Sep 26 14:46:39 I want to write a script that will do it. Sep 26 14:46:44 That would be great. Sep 26 14:46:47 But did not have the time yet. Sep 26 14:47:10 And for the time being Freecell Solver is managed using CVS and I'm perfectly happy with it. Sep 26 14:47:12 Once you write it you add it as a test with a single aegis command Sep 26 14:47:39 I have written quite a lot of CVS glue already. Sep 26 14:47:45 Actually you can do the same thing with CVS if you remmember to run the tests manually every time before a release... Sep 26 14:47:52 OK, can you send me the transcripts now? Sep 26 14:47:55 Sure Sep 26 14:48:34 I'm searching for them...:) Sep 26 14:49:07 I need lot out so the transcript will be written. Sep 26 14:49:12 I need log out so the transcript will be written.