text:
ZF-8372: Zend_File_Transfer_Adapter_Abstract::getMimeType throws exception File '' does not exist
I have a multi file form element with 3 optional file upload elements, when only 1 or 2 of them are filled by the user, the method Zend_File_Transfer_Adapter_Abstract::getMimeType() will throw a "File '' does not exist" exception on the not filled file elements. The correct behavior should be (as with getFileName and getValue (on the form element) to return an array with just 1 or 2 elements.
The solution should be to wrap all code within the foreach statement into an if statement:
foreach($files as $key => $value) {
if (!empty($value['name'])) {
original code
When you are calling getMimeType() for 3 elements, then all elements will be checked. When there is no file available but you still requested it, it's definetly an error. The exception is in this case the correct behaviour.
Note that an upload could also have no 'name' assigned. There would be no way to differ between an upload without the 'name' attribute or an empty form field.
Note that Zend_File has no connection to Zend_Form. There is no way to recognise if this element is optional or not.
Situation; I have a multi file form element.
$this->addElement('file', 'attachments', array(
'label' => 'Attachment(s) (max. 400KB each)',
'required' => false,
'validators' => array(
array('count', false, array('max' => 3)),
array('size', false, 400*1024)),
'maxFileSize' => 400*1024,
'multiFile' => 3,
'destination' => WEBSITE_PATH . 'upload',
The user fills in 2 out of 3 available file uploads. During processing the form, I call the methods form the file transfer object via the file form element methods:
$element = $this->getElement('attachments');
$pathNames = $element->getFileName();
$fileNames = $element->getValue();
$mimeTypes = $element->getMimeType();
getFileName() and getValue() return an array with 2 values, but getMimeType() throws an error. This definitely is an error, either in Zend_Form or in Zend_File_Transfer. If Zend_File_Transfer_Adapter_Abstract handles empty names correctly (Zend_File_Transfer_Adapter_Abstract::getFileName() returns just an array of 2 elements) then Zend_File_Transfer_Adapter_Abstract::getMimeType should do the same. So I opt for an error in Zend_File_Transfer_Adapter_Abstract.
Yet another solution would then be to take 'type', 'size' and/or 'tmp_name' into account as well, something like:
foreach($files as $key => $value) {
if (!empty($value['type']) {
$result[$key] = $value['type'];
else if (!empty($value['name']) || !empty($value['tmp_name']) || $value['size'] > 0)) {
original code
Having had yet another look at the code, I think that taking the 'ignoreNoFile' option into account might even be better to decide whether to ignore this entry or not.
New feature implemented with r19216


text:
- Inside Athletics
- Tickets
- Social
- Fan Zone
- Media Zone
- Shop
- E Fund
Currently, the Bucs are being led by junior Natalia Giraldo (Cali, Colombia), who is currently 22nd after posting a 78 Sunday at the Baytowne Golf Course at the Sandestin Golf and Beach Resort. Giraldo is 12 strokes off the pace set by leader Caroline Westrup of
"We improved over yesterday, but our spring is just off to a rough start right now," said ETSU head coach Stefanie Reynolds, whose team is coming off the most successful fall campaign in school history. "Especially in golf the hard days are the ones you learn from. Right now, our team is trying to learn from our mistakes."
Along with Giraldo, other ETSU results of note included a tie for 30th by junior Maria Ringdahl (
The Bucs will return to action in third and final round play on Monday. Visit ETSUBucs.com at the conclusion of the day's action for a complete recap and scores.

subset: commoncrawl


text:
This is the original version of "Slow Man" by Sage Francis which was completely reworked and re-recorded over different music for the LI(F)E album. This demo version is more aggressive and includes a BONUS VERSE. The legendary Buck 65 produced the beat.
Latest Blog Posts
- Sage Francis
Sage Francis 2016 Events (France, Montana, EdFringe, England)
- Sage Francis
"Reflections from Hell" prt 1
- Sage Francis
Fancy Fran and the South African Fam (2015)
- Sage Francis
Copper Gone 1 Year Anniversary + NEW VIDEO!
- Sage Francis
Tag Archives: Slow Man
BRAND NEW STYLE FOR 2016, available in Men's & Women's fits! The One Party System T-Shirt is inspired by lyrics from the Sage Francis classic "Slow Down Gandhi".
NEW! B. Dolan's first live album "We Show Up" is here on SIGNED CD! B is on the road now - info on all upcoming dates here.
Because you demanded it: brand new FLEXFIT HATS! Click here to see them all.
Copyright © Strange Famous Records (SFR). Dissing You Since 1996
Powered by WordPress and Zen Cart.


text:
Egg Muffins Recipe for a Grab-and-Go Breakfast
12 - 15 eggs (use 12 eggs for individual silicone cups and 15 for larger silicone muffin pans. You can use less egg yolks and more egg white if you prefer.)
1 tsp. (or more) Spike Seasoning (optional, if you don't have Spike, use any type of seasoning blend that's good with eggs.)
fresh-ground black pepper (optional)
1-2 cups grated low fat cheese (I like sharp cheddar or a blend of cheddar/Jack cheese, use less cheese if using meat)
Optional, but highly recommended, 3 green onions diced small.
Optional: chopped veggies such as blanched broccoli, red pepper, sauteed zucchini, sauteed mushrooms, etc. (Using veggies will reduce the fat content)
Optional: diced Canadian bacon, lean ham, or crumbled cooked turkey sausage
Break eggs into large measuring bowl with pour spout, add Spike, and pepper (if using) and beat well. Pour egg into each muffin cup until it is 3/4 full. I like to stir slightly with a fork. Bake 25-35 minutes until muffins have risen and are slightly browned and set.
Muffins will keep more than a week in the refrigerator. Microwave on high about 45 seconds to one minute to reheat.
(Egg muffins can be frozen and reheated, but I like them much better when they're just refrigerated. For best results, thaw in refrigerator before reheating. Frozen muffins will release some water when they thaw.)
South Beach/Low-Carb Suggestions:
Find More Recipes Like This One:
Use the Recipes by Diet Type photo index pages to find more recipes suitable for a specific eating plan.
Nutritional Information?
I chose the South Beach Diet to manage my weight partly so I wouldn't have to count calories, carbs, points, or fat grams, but if you want nutritional information for a recipe, I recommend entering the recipe into Calorie Count, which will calculate it for you.
More Phase One/Low-Carb Breakfasts from Kalyn:
Egg Muffins with Ham, Cheese, and Green Bell Pepper
Green Chile and Cheese Egg Muffins
Breakfast Casserole with Mushrooms, Green Bell Peppers, and Feta
Sausage, Mushrooms, and Feta with Eggs
Southwestern Egg Casserole
Eggs with Red Pepper, Basil, and Cheese
Scrambled Eggs with Mushrooms and Feta


text:
General Message Board
Expert Fantasy Advice
Outfielder Shuffle Up: The ageless Carlos Beltran
There's plenty wrong with the Yankees offense this year, but Carlos Beltran is part of the solution. … More »
Freak Show Podcast: Cardinals pen, Strasburg and Giolito, Steven Wright
Brandon Funston and Scott Pianowski talk MLB news and happenings, starting in St. Louis. … More »
Daily Dime: Hanley Ramirez, Kershaw and Cueto, Coors Field
Hanley Ramirez's bat has come alive this week and he's cheaply priced for Sunday DFS. … More »
Mostly MLB Notes: Talking Encarnacion and a look around the league
Talking Edwin Encarnacion, a look around the league and other random nonsense. … More »
NBA Stock Watch: Talking recent big trades and the draft
A look at recent fantasy risers and fallers regarding trades and the draft. … More »


text:
The last of my recent Kit Kat finds is this Parmesan Cheese Kit Kat. Yeah, you heard me, Parmesan cheese. Why they decided this was a flavor to incorporate into a Kit Kat, I'm not sure. But, it's new, it's interesting, and it's unique. So of course I'm going to try it. Otherwise my taste buds are going to forever regret not ever giving it a shot, no matter how bad it potentially may be.
These, unlike the other Kit Kats, came is a box with individual Kit Kat "fingers' as opposed to the big "grab bag" the other were. They each come individually wrapped and have a pretty orange and yellow color scheme on the little wrappers. I get the feeling even the makers of this flavor realize it's more unique, and packaged it to reflect that. Are they suggesting you'd only want to each one finger of these as opposed to the normal two? I think I am thinking too hard about this…
The naked Kit Kat is pristine white in color. It smells exactly like Parmesan cheese actually. It's cheesy, tart and slightly odious with a sharp note to it. I was surprised by this, cause I was secretly hoping that this would be more like cheesecake. I guess I am mistaken.
The flavor is sweet and first. It's creamy with a hint of coconut. The the flavor grows and you get those sharp cheesy notes that say "Parmesan cheese" to me. Think of it as Parmesan mixed with Ricotta cheese; creamy and cheesy. You just have to add the sugar in to complete the flavor. I take a few more bites and the flavor kinda grows on me, once you know what to expect. The tart/sweet works surprisingly well and makes for a very tasty Kit Kat.
Sometimes strange can also be tasty. This is a good example of such. If you're a fan of Parmesan cheese, this is worth a try. It's a fun curiosity to indulge in.
Rating: Might Eat Again
Links Japanese Kit Kat Website


text:
Wednesday, December 8, 2010
WIP Wednesday Link-Up
New Projects:
Mystery Gift Project, times 12
This is my scrappy project that I'm making as small gifts for, like, half the people I've ever met. Three are done, nine left to go. My goal is to make one per day until they're done, which means, come next week's WIP Wednesday, I should only have two left. Hold me to that!
Ongoing Projects:
Urban Lattice Quilt Along at Me? A Mom?
I love this quilt! And all I've done so far is mark my scrapbooking paper! : ) But seriously, even just marking the paper was kinda fun, in its own weird, tedious way. I really, really, really hope to have more time for this one in the coming week.
That Girl ... That Quilt Along quilt
Well. I wonked my blocks. And I don't know—I think I may have under-wonked. When you think about it, that might be the worst thing that could happen when you're doing a wonky quilt. Because people might not realize the wonkiness is intentional, and will instead think I'm just a really crappy sewer.
But at least I may have set a new world record for most use of the word "wonky" in a single paragraph (and in some very creative new forms, at that).
STILL didn't do anything with these:
Figgy Pudding quilt
Wonky Log Cabin
Completed tops STILL awaiting quilting:
Hope Valley quilt
Modern Meadow Baby Quilt
Fall Equinox (Fat Quarterly Quilt Along quilt)
This week's stats:
New projects - 1. But it's a gift! That makes it okay!
Completed projects - 0 sewing projects completed. HOWEVER, I did design a blog header and three buttons, put up my Christmas tree, decorated the rest of my house for Christmas, and do some serious shopping. So there. : )
Currently in progress - 8, up 1 from last week.
10 comments:
- Elizabeth D. said...
Um, yes, you've been a busy bee, both blog-wise and otherwise! I like those scraps I'm seeing, I know those mystery gifts are going to turn out just great :)
- December 8, 2010 at 5:19 AM
- Leila said...
The more I see that wonky block quilt the more I think I may have to make one. I think it will be lovely.
The pictures of your scraps are great. I can't wait to see what they are.
- December 8, 2010 at 7:53 AM
- AnneMarie said...
Don't be so hard on yourself! I think probably every one of us has over-committed in the making gifts department. I'm stressed too.
PS I love the word "under-wonked"
I have no progress - so I'm not linking up today..
- December 8, 2010 at 8:55 AM
- AnneMarie said...
PPS I LOVE the merry xmas colors at freshly pieced!
- December 8, 2010 at 8:55 AM
- Megan said...
Way to go on the progress! I love the blog header! And way to go on the Christmas shopping...you are way a head of me!
Thanks for hosting and happy WiP Wednesday!
- December 8, 2010 at 9:03 AM
- Katherine said...
Anne Marie is right - we've all over-committed! I don't know if I'll get everything done that I want to. Next year I'll be starting WAY earlier and doing gift projects throughout the year. I hope.
I love the blocks you've done! Always enjoy seeing your color selection, they are so bright and cheery.
- December 8, 2010 at 9:08 AM
- felicity said...
So I'm not the only one who keeps adding projects onto her to-make list? Thank goodness.
The blog header and button you designed for Haiti Quilt In are just wonderful. You were very productive this week so pat yourself on the back!
If you're concerned you've under-wonked (show a photo of your layout!), then just re-wonk 'em!
- December 8, 2010 at 11:17 AM
- emedoodle said...
Great job on your progress! I agree about the wonkiness... no one in my family sews so they don't "get" wonky. lol. I hate having to explain it!
- December 8, 2010 at 1:19 PM
- Melanie said...
Don't feel bad at all about not getting as much sewing done as you'd like! It seems like you have done a lot of "real life" and blog projects! This time of year can get so crazy! I can't wait to see your mystery gifts! You color choices are fab!
- December 8, 2010 at 7:03 PM
- Diane said...
I can't wait to see what those strips are going tp be... and love your Farmdale square for your wonky quilt!
- December 9, 2010 at 7:14 PM


text:
Joined IHG® Rewards Club at a Hotel?
Joining is easy and free
Earn points at over 4,700 hotels
Redeem points for free rooms and more
Contact your local IHG® Rewards Club Customer Care to source your PIN
and to update your profile with your email address. When you receive your PIN
you can also update your email address via www.ihg.com/updateemail.
Reward Nights
When redeeming points for a Reward Night, you may only book one room at a time.
Once you complete your Reward Night reservation you will be given the option to duplicate this reservation.
* Requires affiliation in the respective organization.
** Best Available Rate Search does not include affiliation rates.
To book more than 9 rooms for one stay or request a quote, please use our Easy Meetings tool, call 1-800-MEETING (in United States, Mexico and Canada) or contact a Global Sales Office.
Filled with fun, family activities and home to numerous corporations, Beloit, Wisconsin offers something for every type of traveler. The Holiday Inn Express® Hotel Beloit is perfectly positioned within the city at the intersection of I-90, I-43 and Hwy 81 at exit 185A, so you can easily travel around the area.
Corporate guests appreciate our convenient, on-site Business Center and a 609-square-foot meeting room. Several area
View More
Corporate guests appreciate our convenient, on-site Business Center and a 609-square-foot meeting room. Several area businesses, including Kerry, Hormel Foods, ABC Supply Co, Metso Corporation, Frito-Lay and Fairbanks Morse Engine/ Enpro call Beloit, Wisconsin home.
Since our hotel's location is just a short drive from attractions like the Angel Museum and Telfer Park, home of the Beloit Snappers, leisure guests have plenty to do. After spending the day at Krueger-Haskell Golf Course or Historic Auto Attractions, take the evening to tour the beautiful Beloit Riverfront area. If you're interested in exploring the beauty of Beloit, Wisconsin, our hotel's guests can check out Pearl Lake, which offers world-class diving and swimming. Alpine Valley and Ledges Horse Stables are nearby, as well.
We are proud to offer free high-speed, wireless Internet access throughout our hotel's facility. While in Beloit, WI, be sure to check out our complimentary, hot Express Start Breakfast Bar. We also have an indoor pool and Fitness Center. We hope you book today, and we'll see you soon!


text:
Ranked among the nation's most integrated healthcare systems, Community Health Network is Central Indiana's leader in providing convenient access to exceptional healthcare services, where and when patients need them—in hospitals, health pavilions, workplaces, schools and homes.
The most common type of breast infection is lactational mastitis. With this condition, which occurs when a woman is breastfeeding, the nipples become cracked and sore, allowing bacteria from the baby's mouth to enter the ducts and rapidly multiply in the milk. Occasionally, infection also arises from a blocked milk duct. In both cases, the breast becomes hard, reddened, hot, and painful.
Specific treatment for lactational mastitis will be determined by your physician based on:
Your physician may suggest trying to unblock the duct with warm compresses and massage. He/she may also prescribe antibiotics and an analgesic for pain. In some cases, lactational mastitis progresses and forms an abscess - a more serious condition that may require drainage.
Nonlactational mastitis is similar to lactational mastitis but occurs in nonlactating women. In some cases, this condition occurs in women who have had lumpectomies followed by radiation therapy, in women with diabetes, or in women whose immune systems are depressed.
While this condition is rare, it is usually accompanied by high fever and headache and treated with antibiotics. Consult your physician for a diagnosis and treatment.
Chronic subareolar abscess is a common breast infection, although it occurs infrequently. Once believed to be a blocked duct, physicians now believe that the glands that make sebaceous material around the nipple become infected. When this occurs, an abscess can form. If the infection is detected early, before the abscess forms, it can often be treated with antibiotics. More often, it is necessary to make an incision and drain the abscess. Consult your physician for a diagnosis and treatment.
Click here to view the
Online Resources of Breast Health
See more of our awards
More about shops


text:
New Yorkers are all about the black, right? Fuggedaboutit. That's right, fashion in the Big Apple is bright and cheerful this winter as the city folk and tourists alike break out puffer coats in sunny yellows, lipstick pinks and vibrant purples.
So, get in an Empire State of Mind and trade in those dark blacks, grays and browns for outerwear that's decidedly a bit more merry and bright. Here's where you can find the look right here in the Beehive.
G Star Raw down bomber jacket, $390, Cake Boutique
The North Face hybrid jacket, $249, Jans Mountain Outfitters
Outdoor Research jacket, $155, Kirkham's


text:
Chihuahua victim in crime against nature charge
Published: Monday, May 20, 2013 at 12:29 p.m.
Last Modified: Monday, May 20, 2013 at 12:29 p.m.
ASH | A Brunswick County man was arrested early Monday, accused of committing a crime against nature involving a Chihuahua.
Jeffrey Edward Bynner, 24, was booked into jail on the charge at 12:41 a.m. Monday. The details of the charge were not immediately available.
According to the warrant, between March 1 and March 31, Bynner, of Ash, "unlawfully, willfully and feloniously did commit the abominable and detestable crime against nature with a Chihuahua dog."
Bynner's bail is set at $10,000.
– F.T. Norton
Reader comments posted to this article may be published in our print edition. All rights reserved. This copyrighted material may not be re-published without permission. Links are encouraged.


text:
You are currently viewing the beta version of the new AMM site.
Click here
to return to the current site.
To access AMM's full content, please log in below. If you do not have an AMM account, we invite you to take a free trial or subscribe below.
Every morning, every minute no matter how often you follow the markets, there's an AMM subscription to fit your needs.
Not sure if you are ready to invest in a subscription right now? Take a free, no-obligation trial. Start your free trial today.
Every month American Metal Market takes a statistical look inside the marketplace.
We actually don't know who his investors are. At the point when we are ready, we will investigate further. There are just so many things to handle and there are a lot of items to be considered with the project."
-- Charles C. Mitchell, Barstow city manager


text:
Redner's Warehouse Markets, which will soon have three stores in Kent County and two in Sussex, has been award the 2012 National Beef Backer Award in the Mid-Size Retailer category by the Beef Checkoff Program with for its strong commitment to beef sales, marketing and merchandising.
Representatives from Redner's were honored at the 2013 Cattle Industry Annual Convention in Tampa, Florida.
Started in 2006, the National Retail Beef Backer Awards program was developed to recognize retailers for their excellence in a variety of promotional partnerships, beef merchandising and education programs. A judging panel of industry professionals selected one winner in the following four categories: Independent Chain, Mid-Size Chain, Large Chain and Innovator of the Year.
In addition to the store near Cheswold, Redner's has stores under construction in Camden and the city of Dover. Redner's also has a store in Milford and plans to build a second store in Sussex County.
Location, ST | website.com


text:
St. Elizabeth's Hospital has been meeting the health care needs of our community for 140 years. We carry on the core values of our founding Sisters by exhibiting RESPECT, CARE, COMPETENCE and JOY and provide Off-the-Chart Care to patients and families who enter our doors. We are committed to providing patients with the highest quality care, using a combination of the latest technology and caring health professionals.
Our eye on quality care continues.
We are making great strides in raising patient satisfaction and quality scores throughout the hospital which are now at top performance levels in the country in publicly reported quality surveys. We have implemented many internal programs to show our focus on patient satisfaction, including:
The leadership team is dedicated to St. Elizabeth's Hospital and our strategic goals of providing high- value, region leading health care for the next one hundred years. Learn more about our quality scores and what they mean to you by clicking here.
The Hospital Consumer Assessment of Health Providers and Systems (HCAHPS) survey measures your satisfaction with the quality of your care. The survey is backed by the U.S. Department of Health and Human Services to improve the quality of health care to all consumers. The HCAHPS survey results are public (www.hospitalcompare.hhs.gov) so consumers can revew and compare information before choosing a health care provider.
Let us know about the care you received at St. Elizabeth's or nominate a deserving nurse for the DAISY Award for Extraordinary Nurses. This award recognizes nurses who have demonstrated superior clinical skill and compassionate care.


text:
There's a lot of stylish peeps in the Beehive State and we want to start throwing those fashionistas—and fashionistos—a few more props for making Utah look a little sleeker and chicer.
Every month we'll bring you highlights from the streets of Salt Lake, whether we talk to a local rocking out a wicked look (like this week's Darrell Peterson of the Liberty Wells neighborhood) or a report on hottest trends about town.
We stopped the super dapper, yet casual, Peterson on Thursday evening as he walked his precious pooch Gustav near Liberty Park.
"Overdressed is best," Peterson says. "I dress up for everything, even when I go to the grocery store or on an airplane. Who cares if you're stuck with a bunch of people wearing sweats? You look good, and that makes you feel good."
His I'm-ready-for-fall look features lots of layers and mixing color with seasonal neutrals. "You can wear the hoodie alone and have more of a casual look or go for a sporty thing with the jacket," he says, noting his look was pulled from a mix of local shops like Name Droppers to out-of-state finds from big, national chains. "I like to have a different look all the time."
And, Peterson, who just returned from a four-month stint in New York City and counts Spark Clothing and Decades Vintage Clothing among his fave local shops, says he's anxiously awaiting Salt Lake's stylish expansion with the upcoming opening of H&M in Murray and the soon-to-come City Creek Center. "I love shopping in Las Vegas and New York, and am so excited for the reinvention of downtown and [Fashion Place Mall]."


text:
To our American readers: Who would you vote for?
View Results
Please log into the site.
Remember Me
Sandra and Woo by Oliver Knörzer is licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License. See the About page for details.
8888 | Privacy Policy | Impressum | © 2008 – 2016 Oliver Knörzer


text:
A great visual vanish...The magician displays an attractive candle holder. A candle is inserted in the holder and then lit. While the candle is burning, it is covered with a clear tube. The magician pours salt into his hand from a salt shaker. The candle is blown out. At the magician's gesture, the salt vanishes from his hand. As the clear tube is lifted off the holder, the candle transforms into a heap of salt that cascades down onto the table. The clear tube is shown to be absolutely empty!
Comes with one special candle holder, two birthday candles, one small cap, one small clear tube, one larger clear tube with colored tape at both ends and complete detailed instructions that include these BONUS PRESENTATIONS:
No reviews yet. Do you own this product? Write a review.


text:
SAFETY ALERT: If you are in danger, please use a safer computer, or call 911, your local hotline, or the U.S. National Domestic Violence Hotline at 1-800-799-7233 and TTY 1-800-787-3224. See more technology safety tips here. There is always a computer trail, but you can leave this site quickly.
|< Previous
|Next >
|Resource Name
|Better Business Bureau (BBB) of Alaska, Oregon & Western Washington
|A private, not-for-profit organization that aids consumers and businesses by supplying reports on the reliability of companies and charities. BBB also provides dispute resolution services, consumer education materials and informs the public about consumer scams and fraudulent business behavior.
|1000 Station Drive, Ste. 222 DuPont WA 98327
Alianza is not responsible for the information provided in any of the websites, books, videos or other resources published by any of the organizations or other entities listed.
Copyright © 2009 National Latino Alliance for the Elimination of Domestic Violence (Alianza), All Rights Reserved.
Web Implementation by Karmic Visions


text:
I liked Digimon but I only liked season 1&2 Digimon does not come on here anymore which sucks neither does another anime I used to watch Hamtaro
My fave Digimon would have to be Terrerimon also Devimon aswell
Flamon, Agunimon, and Angewomon for me.
I need to find some good digimon porn.
Tie first 2 series where friggin awesome, and the 3rd was decent. I couldn't stard the 4th. Maybe the 5th will be better...
Lost intrest after 3rd season.
I watch Digimon most of the time. But not much.
The Digimon anime was better than all the pokemon seasons (exculding the first season) combined. Honestly, I find a digital universe more realistic than one where people get rip of their kids to possibly send them to death in the wildnerness.
And Digimon wasn't "striving to keep up with Pokemon since it came out" because Digimon was actually released first.
Eh... It's too late to be posting on PD-much less arguing...
Digimon is sooo underrated
Digimon the anime sucked shit throught the entire thing.
It doesn't matter how realistic it is, we're talking about how good the anime was, not realism. Pokemon kicks its ass in that point.
Even though Digimon was first, it wasn't very popular until Pokemon arrived on the scene. Once Pokemon hit, no other kids anime could even come close to catching it (except for one short period of Digimon, but that didn't last...) until Yu-Gi-Oh! came out. Digimon really didn't stand much of a chance, especially nowdays where it's practically unheard of until someone decides to post a thread about it on a forum.
digimon anime had depth, pokemon anime had shallowness.Digimon the anime sucked shit throught the entire thing.
I think not. Pokemon could suck you in. Especially the movie.
That was like, the love of my life at one time... I still watch it if it's on and I have nothing else to do (which is very rare). My opinion has always been that 1 & 2 were by far the best, 3 was okay (though Henry and Jerry pissed me off with their worthlessness and cowardice), and 4 just sort of made me think, "The other seasons are disowning this season as their relative..." I didn't even know there was a 5th season, but it's probably less enjoyable than sitting in elephant dung, so I'm not gonna bother watching it.
[SIZE="1"]Pairs: The Blind Eye of Deception [DSX] | The Ninjassassin [Sasuke] | The Hadouken! [The Azn Party Boy]
The movies are decent, but the digimon movies blow your mind away~~I think not. Pokemon could suck you in. Especially the movie.
I loved the Digimon movie when I saw it, but I only remember bits of it now.
Bishies Claimed: Ed~Rose~Armony~Dante
~Mikey ^.^
Pairs: DSX*Pichubro*Red
I have a friend who has the Digimon movie. I like to borrow it from time to time.
Whoever watches Digimon deserves to be eaten by rabid papayas


text:
Roger Richard Shoals
Position: T
Height: 6-4 Weight: 260 lbs.
Born: December 13, 1938 in Baltimore, MD
High School: Norwalk, Greenbrier Military Academy
College: Maryland (school history)
Drafted by the Dallas Texans in the 34th round (267th overall) of the 1962 AFL Draft.
Drafted by the Cleveland Browns in the 16th round (223rd overall) of the 1961 NFL Draft.
Weighted Career AV (100-95-...): 32 (3081st overall since 1950)
Promote your website or business by sponsoring this page for $5 on Pro-Football-Reference.com. Your message will replace this ad.
1969 Game Log: Regular Season · Playoffs · vs.


text:
- Inside Athletics
- Tickets
- Social
- Fan Zone
- Media Zone
- Shop
- E Fund
San Diego,
Action began with the Buccaneers claiming the doubles point with wins in all three positions. At the No. 1 doubles position, junior Oscar Posada (
ETSU again dominated in singles action, sweeping all six of the matches in straight sets. In No. 1 singles, Oscar Posada defeated Norman Tam, 6-2, 6-1, while Felix Insaurralde defeated Mark Contreras, 6-1, 6-1 in the No. 2 position. In the No. 3 slot, Enrique Olivares defeated Justin Montgomery, 6-1, 6-2. Freshman Juan Crosa defeated Joe Cartledge, 7-5, 6-4, in the No. 4 position. In the No. 5 position Lisandro Picardo defeated Bobby Tam, 6-0, 6-1, while in the No. 6 position Sebastian Serrano defeated Chris Frick, 6-2, 6-3.
"The guys played extremely well today," said coach Yaser Zaatini, "much better than the day before, I'm real happy."
The Buccaneers next match is scheduled for today, Feb. 23, against the
Oscar Posada (ETSU) def. Norman Tam 6-2, 6-1
Felix Insaurralde (ETSU) def. Mark Contreras 6-1, 6-1
Enrique Olivares (ETSU) def. Justin Montgomery 6-1, 6-2
Juan Crosa (ETSU) def. Joe Cartledge 7-5, 6-4
Lisandro Picardo (ETSU) def. Bobby Tam 6-0, 6-1
Sebastian Serrano (ETSU) def. Chris Frick 6-2, 6-3
Posada/Crosa (ETSU) def. Contreras/Frick (UCR) 8-5
Insaurralde/Picardo (ETSU) def. Montgomery/N. Tam (UCR) 8-3
Olivares/Serrano (ETSU) def. Cartledge/Cava (UCR) 8-1


text:
Whether you need boxes to start decluttering your home or are packing for an upcoming move, PODS has the moving boxes and packing supplies you'll need.
Choose a complete moving
kit with boxes, bubble wrap and tape. Whatever your choice, PODS will
send your moving boxes and packing supplies straight to your door with no
shipping costs.
Want to take the stress out of packing as well? PODS can refer you to a local loader and packer to help with this task.
Whether you'll be packing yourself or getting help – PODS is here to help with your storage or moving needs. Our secure storage containers will keep your stuff safe throughout the process and offer you the flexibility to unload at your own pace.
Invest some of your big savings from moving yourself into packing like a professional. Invest in quality moving supplies to protect your stuff.


text:
ZF-5387: If there is a validation error, the Editor doesn't show its value again.
Here is the form: $this->addElement( 'TextBox', 'Title', array( 'label' => 'News Title:', 'required' => true, 'validators' => array( array('NotEmpty', true), ), ) );
$this->addElement( 'Editor', 'Content', array( 'label' => 'News Content:', 'required' => true, 'height' => '150px', 'focusOnLoad' => true, 'validators' => array( array('NotEmpty', true), ), ) );
If there is a validation error, the Editor will set the value to "Array".
Because there are two elements named "Content", see the following html code:
And the solution is change the textarea element's id and name.
Open the Zend/Dojo/View/Helper/Editor.php: change the following code: protected function _normalizeEditorName($name) { if ('[]' == substr($name, -2)) { $name = substr($name, 0, strlen($name) - 2); $name .= '[Editor][]'; } else { $name .= '[Editor]'; } return $name; }
protected function _normalizeEditorName($name) { if ('[]' == substr($name, -2)) { $name = substr($name, 0, strlen($name) - 2); $name .= '-Editor[]'; } else { $name .= '-Editor'; } return $name; }
Hope that helps.
Regard, Justin
Another solution is: Open the Zend/Dojo/View/Helper/Editor.php file:
change the following code: $html = '<input' . $this->_htmlAttribs($hiddenAttribs) . $this->getClosingBracket() . $this->textarea($textareaName, $value, $params, $attribs);
$html = $this->textarea($textareaName, $value, $params, $attribs) .'<input' . $this->_htmlAttribs($hiddenAttribs) . $this->getClosingBracket();
Neither of the solutions work.
I am facing the same problem and am unable to capture the value type inside Editor.
If I hard code the value, like to 'something' below, then the server is able to capture the value correctly, on a valid post. using the following code: $form->editortab->getValue('content')
'label' => 'Content',
'inheritWidth' => 'true',
'height' => '230px',
'width' => '200px',
'focusOnLoad' => true,
'required' => $required,
'value' => 'some',
Forgot to mention that when I hard-code, the value captured is only the text that I hard-coded (i.e. 'something') irrespective of what is actually typed on the UI
To make Zend Dojo Editor work do following to .../Zend/Dojo/View/Helper/Dijit.php
1- Inside _createGetParentFormFunction() return elementNode.domNode; instead of return elementNode;
However this solution only works for Firefox and not with the creepy Internet Explorer and the new kid called Google Crome
This issue appears because "textarea" tag is used as base for editor. Dojo doesn't recommend this for several reasons (including XSS vulnerability). It is much better to use "div" tag as a base for editor.
Here is a helper subclass, which replaces "textarea" tag to "div". Solution automatically fixes this bug and several other issues caused by same reason.
class MyEditor extends Zend_Dojo_View_Helper_Editor
public function textarea($id, $value = null, array $params = array(), array $attribs = array())
// it is a trivial copy-paste of Zend_Dojo_View_Helper_Textarea::textarea method
// with replaced "textarea" tag to "div"
if (!array_key_exists('id', $attribs)) {
$attribs['id'] = $id;
$attribs['name'] = $id;
$attribs['type'] = $this->_elementType;
$attribs = $this->_prepareDijit($attribs, $params, 'textarea');
$html = '
_htmlAttribs($attribs) . '>'
. $value
. "
return $html;


text:
Students work hard in college, so it helps to live healthy, reduce stress, blow off steam and improve fitness. UNT provides services to help students get well and stay healthy.
Student Health and Wellness Center
- Student Health and Wellness Center hours and location
- Make an appointment to see a doctor
- Cost and payment information
- Community health alert information
- Educational resources
- Wellness services and programs
(Services include testing, prevention and support groups.)
- Health and medical services
- Urgent care for accidental injury
- Basic diagnostic x-rays
- Women's care exams and education
- Psychiatric assessment (with referral)
- Nutritional consultation
- Flu shot clinics
- Immunizations (including Meningitis)
- Behavioral medicine
- Pharmacy
- Laboratory testing
- Allergy injections
- Student Health and Wellness Website
Counseling services
- Counseling and Testing Center services
(includes individual counseling, career counseling or help choosing a major, couples counseling and group counseling.)
Safety and emergency
- UNT Police Department
- Eagle Alert
- Emergency Management
- Security and Fire Safety Report (Jeanne Clery Report)
Health resources for the public
- Speech and Hearing Center
(Services include diagnostic and treatment services in speech-language pathology and audiology.)
- Psychology Clinic
(Services include individual and group therapy; marriage and family therapy; play therapy; behavior health services; intelligence, vocational and personality evaluations.)
- Neurotherapy Lab
(Services include biofeedback, neurotherapy, and quantitative electroencephalograph services.)
- Child and Family Resource Clinic
(Services include assessment, counseling, and parent education classes.)
- Center for Play Therapy
(Play therapy utilizes play, children's natural medium of expression, to help them express their feelings more easily through toys instead of words. The center provides play therapy services including individual play therapy, group play therapy, and parent training.)
- Counseling and Human Development Center
(Services include individual adult counseling, individual adolescent counseling, career counseling, couple counseling and play therapy)
- The Family Connections Project
(Intensive training sessions are designed to enhance the quality of relationships within families who have children with autism.)
- Center for Sport Psychology and Performance Excellence
(Provides sessions to improve mental toughness for individual athletes, coaches and leaders, and teams and groups)
- UNT Recreational Sports home
- Recreational Sports facilities
- Pohl Recreation Center (location)
- Waranch Tennis Complex includes 12 lighted tennis courts and a pro shop (location)
- Recreational Sports Complex includes four lighted multi-purpose fields (location)
- Intramural Fields include two lighted multi-purpose fields (location)
- Physical Education Building includes eight Racquetball/Handball Courts and four Basketball/Volleyball Courts (location)
- PEB Field a multi-purpose field (location)
- Traditions Fields includes two lighted multi-purpose fields (location)
- West Tennis Courts includes six lighted tennis courts (location)
- Faculty/Staff Fitness program
- Intramural sports
- Sports clubs list
Athletic summer camps for kids
- Soccer
- Softball
- Tennis
- Volleyball
University Union recreation
- The Syndicate
(billiards, darts, table tennis, game watching)


text:
The project was created with the intention to complete the new complex of buildings in Via Larga, Bologna. The landscape therefore has two functions: the first is to represent the "green identity" of companies that fit into the different buildings, secondly it is not only a purely aesthetic element but also accessible and liveable and designated to every kind of user of this space.
Continue reading Unipol Tower | Via Larga Italy | Frassinagodiciotto


text:
Play Slideshow >>
Bringing on new plant
Earth Tech
Well No. 2, which is located near the Great Miami River in a flood plain, is situated on top of a platform.
Ben Roe, plant supervisor, checks the flow chart from the plant.
Brian Cheshire, plant operator, checks the oil level on the high service pump.
Ask anyone who's created a new water treatment plant or revamped an existing one, and you'll likely hear about the complexities of U.S. Environmental Protection Agency regulations, OSHA standards, lab reports, and emergency operations procedures. But with a clearly defined approach to plant operations and maintenance (O&M), this large undertaking doesn't have to become overwhelming.
In Huber Heights, Ohio, a quiet suburb of Dayton, construction is nearly complete on the city's newest water treatment facility. Once completed, the new facility, which replaces one of two plants in the town, will receive water from 10 wells and contribute to an aggregate yield of approximately 11 mgd.
The Rip Rap Road Water Treatment Plant performs iron and manganese removal, aeration, air stripping, fluoridation, and chlorination. Since 1995, Earth Tech Inc., an engineering, construction, and consulting services firm based in Long Beach, Calif., has operated the Rip Rap Road plant and the city's main water distribution system and wastewater collection system. These facilities provide fresh water and wastewater treatment for more than 14,500 customers.
"Water is the critical ingredient for success in every growing community," said Catherine Armocida, Huber Heights city manager. "After facing water shortages in 1995, our council implemented a plan to gradually increase water and sewer rates to pay for an expansion of the Rip Rap Road Water Treatment Plant in 2006. When finished, the plant's capacity will increase from 1.44 to 7 mgd, ensuring enough quality water to serve our citizens' needs and desired growth for years to come."
As the project nears completion, the Earth Tech team is putting the finishing touches on its new O&M procedures. What the team has learned about designing in quality for this new operation may help your city successfully take on a similar task.
To get a new facility up and running and ensure it complies fully with all local and state regulations, you'll have to do your homework. Based on our experiences at Huber Heights, you'll need to identify, plan for, and manage key process components to ensure the success of your project. These steps include:
Identify available land. First, locate usable land that provides enough area for wellheads and isn't surrounded by harmful industries or landfills.
Know your current water sources and supply. For any city to grow, it needs enough water to meet its general demand. Locate your town's nearest water source and select a strategic location.
Sponsored CEU
This course is registered for 1 HSW hour with AIA and will focus on gates and gate...
Sponsored Video
311 Call Centers
Condition Assessment
Dayton, OH
Woolpert has been awarded a one-year contract with the West Virginia Department of...
Environmental Protection...
Buildings & Facilities
Hazardous Waste
Lead-Safe Practices
OSHA-compliant Kee Gate self-closing safety gates provide permanent hazard protection...
Cloud-based solution for monitoring roadways, jobsites, and other remote facilities.
Stormwater Management
If your agency uses WinSLAMM source loading and management software, you can earn .75...
Please read our Content Guidelines before posting.
Copyright ©
2016 Hanley Wood Media, Inc. All rights reserved.


text:
Disney Parks Product
Bring the magic, be part of the magic and relive the magic with Disney Parks Authentic Merchandise. Get set for your next vacation with MagicBands, ear hats, collectibles and more!
Welcome back! Sign in here with your Disney Store or Disney Account info.
Create a Disney Account and enjoy faster checkout, easier order tracking and all kinds of updates, special offers and other information.Create Account
Yippee! Your Disney Store account has been created! You are now logged in and ready to shop. Be on the lookout for your welcome email.Continue Shopping


text:
Orange & Chocolate
Ridiculously Rich Double Chocolate Cupcakes
- 1 1/2 cups flour
- 1/2 cup sugar
- 1/4 cup butter, melted
- 2 eggs, beaten
- 1 cup warm water
- 1 cup semi-sweet chocolate chips
- 4 tbsp cocoa powder
- 1 tsp baking powder
- 1 tsp baking soda
- 1 tsp pure vanilla essence
- 1 tsp instant coffee powder
Mix all ingredients, except chocolate chips, in a large bowl to form a thick rich batter. Fold in chocolate chips and pour cake mixture into muffin cups set in a muffin tray bake for 15-20 in a 375 degree pre-heated oven till done. RECIPE NOTES: To check if cakes are done, prick the middle with a tooth-pick, and if it comes out clean, then cakes are ready to taken out of the heat. Enjoy with a warm cup of deliciously rich and frothy coffee!
Recipe Submitted by:
{HWTM} Meenakshi Agarwal - Ontario, Canada
{HWTM} Meenakshi Agarwal - Ontario, Canada


text:
expert advice.unbiased reviews.
As low as
Exclusively from the editors at Total Beauty
Get the Buying Guide to see these top-rated products!
NARS The NARSissist Cheek Kit Reviews
Your Rating & Reviews
Share on too?
Would you like to share your rating and review on Facebook?
If you'd like to turn this notice off, change your sharing preferences.
10 Best Blushes -- and the 4 Worst
Face makeup
The Prettiest Blushes of the Season
Natural makeup
16 Best Blushes
Cheap Swaps for High-End Makeup
Makeup tutorial
Backto top
My Reasons for Reporting This
Best of Total Beauty: All Our Best Beauty Product Stories in One Place
The 9 Best Waterproof Mascaras -- and the 2 Worst
Health & Beauty
15 Body Positive Quotes That Will Make You Proud to Flaunt What You Got
13 New Tinted Lip Balms for a Popsicle-Stained Pout
9 Workouts for Better Sex
15 Healthy Smoothies for Radiant Skin
I Worked Out for 10 Minutes a Day for a Month. Here's What Happened


text:
For instance, I like some colours, I like some sort of music, I like a specific weather since I was young, I like mathematics, but not because I decided that. These all come from inside and I cannot explain them. The science says that this is related to genetics. What if we are genetically set to do what is called to be a sin? Then what is our fault if our nature is so from genetics?
Sign up
- Anybody can ask a question
- Anybody can answer
- The best answers are voted up and rise to the top
closed as not constructive by David♦, warren, Peter Turner, wax eagle♦ Oct 3 '12 at 14:01
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.
We are all born into sin.
This means that genetically, yes, some people are more likely to do certain sins then others.
Nature does have a part it what people do. If you grow up with drug addicts and without they knowledge that drugs are bad, then you are likely do do drugs. Same applies to good acts. If your parents give money to charity every month and you are taught that giving money to charity is good, then you are likely to give to charity. So as nature, genetics plays a part in what we do. People have different brains that are wired to do different things. Some people have addictive personalities, which can lead to sin problems. So nature and genetics play a part in what we do, but just because nature or genetics says something does not mean that it is what you must do.
Take a sex addict. He likes sex. He is not married. He is in sin. His family had a lot of sex. He is sexually minded. This does not mean that he is supposed to or should have sex.
Also, when a person is saved the sin nature passes away and a new nature appears. This new nature takes the place of the sin, though the "like" is sometimes left. When a person is saved, the Holy Spirit comes inside them. The Holy Spirit warns people of sins, guides his sheep, and transforms the like of sin for the like of God.
(All verses are in the NLT)
Just as it is our nature to want food and warmth and love, so it is our nature to want to sin. Whether it's technically "in our genes" or what, yes, it's how we all are born.
Nevertheless, what you do is under your control, and so you are responsible for your behavior. I like the color red, perhaps I was born liking the color red. But that doesn't force me to wear a red shirt. My will can control my desires. If we turn our lives over to Christ, he will give us the ability to overcome our natural desire to sin. Of course we'll still screw up regularly.
BTW, I also love to drive fast. Maybe that's genetic too. But if I told the policeman that I just couldn't help driving through the kindergarten playground at 90 miles per hour because I have this inborn, natural desire to drive fast, he may or may not sympathize, but I'm sure he'd still give me a ticket.


text:
What's it all about? Download the National VET E-learning Strategy
For key developments and opportunities in e-learning, check out the Strategy's monthly newsletter, Flex e-News
The Flexible Learning Advisory Group has developed a model for quality e-learning.
Read more about the Model.
A new guide to implementing e-learning is available to training providers.
View the toolkit here
The National VET E-learning Strategy aims to provide useful information, tools and support to help you plan, design, deliver and evaluate e-learning activities in vocational education and training.
Through this site, you can also stay up-to-date with the latest news and activities in the world of e-learning.


text:
Difference between revisions of "Subversion"
m (→Versions of Subversion on DreamHost)
(→Compilation and Installation)
|Line 496:
|Line 496:
Be aware that if you upgrade your repository (svnadmin upgrade) to the 1.6 format, you will not be able to access it via http (use svn+ssh instead).
Be aware that if you upgrade your repository (svnadmin upgrade) to the 1.6 format, you will not be able to access it via http (use svn+ssh instead).
== Interfacing with Subversion from PHP ==
== Interfacing with Subversion from PHP ==
Revision as of 14:35, 3 March 2012
|This article or section may require a cleanup.
We are hoping to create articles that meet certain standards. Please discuss this issue on the talk page. Editing help is available.
Subversion (official site) is a version-control system that keeps track of changes in your files on a server. Subversion helps to coordinate work among multiple people. For an introduction - read the book - it is really great.
- 1 Subversion on DreamHost
- 2 Quick Start
- 3 Connecting to Subversion Repository
- 4 How to use: quick reference
- 4.1 Creating Repository via Command-Line
- 4.2 Importing Folders and Files
- 4.3 Loading a dumpfile
- 4.4 Using TortoiseSVN
- 4.5 Multiple User Access to Repository
- 4.6 Using Apache basic authentication
- 4.7 Using Subversion for Web development
- 5 Upgrading to Newest Subversion
- 6 Interfacing with Subversion from PHP
- 7 Setting up post commit emails
- 8 External Links
- 9 See Also
Subversion on DreamHost
For Subversion hosting, DreamHost is notable in that DreamHost is the only web host providing private storage (for Subversion & more) with a huge & potentially-unlimited total storage size for a flat-else-very-low fee --or else the first web host to do so (at least since 2006), seemingly years ahead of anyone else. However, a serious drawback: a new bug, apparently from DreamHost, limits seemingly every new file to be under ~0.5GB.
Since about 2009 July, I User:CaydenMC have used DreamHost Subversion on a near-daily basis for text editing (writing, coding, spreadsheets) as my primary working-file storage; now today 2011.08.31 with 5 SVN repos so far totaling 5.7GiB, and here are the pros-thru-cons I find:
- Notable Pro: storage space is "unlimited" per http://dreamhost.com/unlimited-policy (see that for the current details); in general, the total storage space is unlimited else notably inexpensive, which seems to be a one-of-kind for private Subversion storage, making DreamHost the most inexpensive-by-far private Subversion storage (in terms of $/GB) of anywhere I've seen
- Notable Pro: servers are almost always online (never a problem in my experience); "consistently fast" reports another user*
- Pro: servers have always been reasonably fast
- Pro: unlimited repositories & users
- Mixed: Very easy to start, but the best direction? It's very easy to get started with the #Built-in/Control-Panel Subversion on DreamHost but this Subversion has a number of drawbacks seriously limiting its use & scalability for me & seemingly many, so one would have to #Upgrading to Newest Subversion which I read here is possible but I haven't really tried because of its apparent complexity & other drawback on DreamHost (possibly "not accessible via http(s)"), plus also then converting ones repos to the new format.
- Con, Possibly Serious: The version of Subversion running by default is always out-of-date and getting a-more or the current version is difficult or impractical.
- Serious Con: the size of each new file (& seemingly commit) is now limited to ~0.5GB due to some new bug apparently with DreamHost, at least with the built-in Subversion and possibly custom, too, so unless one is prepared to split & reassemble every type of large file into < .5GB chucks (typically impractical), due to this new bug it now seems typically impossible to store in DreamHost's Subversion any file over ~.5GB including all the common & important ones as videos, disk images (as CDs & DVDs & virtual machines & more), Outlook data files (.ost & .pst), and more. This is a serious drawback to DreamHost Subversion (which, before this, could handle files over 0.5GB, at least .ost), as one can often want & need to have at least some if not all Subversion benefits (as efficient & automatic versioning, and real protection protect-from-erasure, & store-and-transmit-just-the-differences) for the larger files just as one would for other files (such as when editing a video, or a virtual machine, or an .ost/.pst with all ones personal data, so wanting to keep prior versions), indeed for larger files, efficient -versioning & store-and-transmit-just-the-differences is notably more critical
For more on what DreamHost Subversion users are into & wanting, see DreamHost's Customer Suggestions for Subversion and for SVN.
Built-in/Control-Panel Subversion on DreamHost
Most obviously & easily, a version of Subversion can be immediately setup & configured via the DreamHost's Subversion Control Panel. And as of 2010.04.09 thru today 2011.08.31, here are the pros-thru-cons of using this built-in Subversion, found at least by I User:CaydenMC:
- Notable Pro: makes it very easy to get started with & learn Subversion from the server side (installing & configuring basic repositories & users) plus test DreamHost's Subversion server speed
- Notable Pro: easily create/delete any number of users (all with write access) and set/change the password of each
- Notable Pro: easily specify if the repository is public and to require/offer http and/or https access
- Notable Pro: easily specify if the repository available via WebDAV thanks to SVN's Autoversioning which then allows you to conveniently access SVN via WebDAV clients.
- Cons: the built-in/panel Subversion has serious scalability limitations which will force me & many others to eventually move off of it:
- Small Con: does not allow a user to delegate who can create accounts and grant/revoke access (say when a user wants to store a file there then grant access to additional people).
- Con: does not allow a user to create & update his/her own Subversion account --as implied by one customer's suggestion for this
- Con, Possibly Serious: breaks passwords containing spaces; it's possible to enter passwords that contain spaces, but each time the page is loaded, all passwords will be truncated before the first space. If you use passwords containing spaces, you must remember to re-type each password whenever making changes to the SVN settings.
- Con, Possibly Serious: The only version of Subversion which the panel uses is the pre-installed & maintained version of Subversion, which, as #Versions of Subversion on DreamHost details & "explains", is always out-of-date.
- Serious Con: uses Basic Authentication that stores and transmits user passwords in plain-text, making it very insecure unless SSH tunneling or SSL/TLS encryption is used.
- Serious Con: does not allow one to specify who can get access to what. Instead, every listed-user has read & write access to everything, and the public/anonymous-users have either has no access at all or read access to everything. Consequently, the only workaround is to have multiple repositories (one for each kind of access-list desired) so then to give most every user multiple accounts, and in all that confusion hope something doesn't get misfiled as it would be very difficult to move its history.
- Serious Con: there is no supplied server-side indexer to index & fast-search the server's repository (such as http://Atlassian.com/software/fisheye ); consequently, to content-search a repository (and often even to full-search the file & folder names), each user (potentially on each computer) has to download potentially the whole repository (and potentially ever version) and search it using say his/her local desktop search --and as the repository grows, naturally this becomes impractical.
Consequently in DreamHost's Customer Suggestions there are several customers asking fixes for these limitations:
- Some customers ask fixes to just the limitations they've encountered thus-far: Goodies - Subversion suggestions
- Alternatively a number of customers (including me User:CaydenMC) ask DreamHost simply provide a standard SVN front-end which solves all these limitations and more, as:
- one suggesting the open-source http://USvn.Tigris.Org
- one suggesting http://Atlassian.com/software/crowd
- one suggesting open-source http://Insurrection.Tigris.Org
- among even more web admin GUIs for Subversion available.
Versions of Subversion on DreamHost
To find out which version of Subversion you have on your server, login to it with PuTTY or other SSH client and enter the command:
svn --version
In one's DreamHost account, the version of Subversion pre-installed & maintained is the version which is pre-packaged for the version the OS (which is always Debian) --the standard on DreamHost for many third-party apps. This guarantees the combination (OS & all its apps) will work at the cost of apps being typically about 1 to 3 years out-of-date. And, as that link explains, the OS generally isn't upgraded (so neither are Subversion & these other; rather a newer OS version may be running on another DreamHost machine, in which case one can request one's account be moved to such a machine with a newer OS. That link will also tell you how to tell what version of the OS your account has and what is current and how the upgrade process works if you need one. On DreamHost,
- For the reason explained above, the pre-installed version of Subversion will always be out-of-date (it was on 2010.04.09 and for at least a year or more before that, seemingly has been out-of-date for most of the last 4 years before that (since 2006) and maybe longer).
- A few older customers may be on machines with Subversion 1.4.
- Most (over 80%) current customers, including all customers who signed up after mid-2008, should be on newer machines (in the "homie" cluster), which should have Subversion 1.5.
- As of 2010.04, Subversion 1.6 is available from Subversion's web site, but is not yet available on Dreamhost servers because (at least then) DreamHost runs Debian Etch and latest Subversion is not yet pre-packaged for Debian Etch.
- As of 2012.02, at least server Kings has version 1.6.12
Installing a newer version Subversion manually will make the command-line tools available to your user, but will not cause your repository to be served as SVN 1.6 (so not accessible via http(s)? Why? Also citation needed); as such your installing a newer version of Subversion is not recommended by DreamHost.
Quick Start
To set up a Subversion repository at svn.yoursite.com for a project called "myproject", follow these steps:
- Create svn.yoursite.com:
- Go to your DreamHost control panel and click Domains, then Manage Domains
- Click Add New Domain / Sub-Domain
- Enter "svn.yoursite.com" in the Domain To Host field, enter "svn.yoursite.com" in the Web Directory field, and select Remove www.
- Click Fully Host This Domain Now!
- Wait a few hours until the new DNS information propagates (that is, when visiting svn.yoursite.com in a web browser doesn't give an error--the page will look like an empty directory listing once the DNS info has propagated).
- Set up a Subversion repository:
- Click Goodies, then Subversion
- Enter "My Project" in the Project Name field, "myproject" in the Project ID field, and make sure that svn.yoursite.com is selected for the URL. Use "myproject" as the directory name.
- Replace the dummy usernames and passwords with a username and password for yourself.
- Click Create My New Project Repository Now!
As soon as the DreamHost Subversive Robot actually creates your repository, you can begin using it. For instance, to import a directory:
- svn import some_directory http://svn.yoursite.com/myproject -m "Initial import"
You can create additional users for your Subversion project at any time by going to Goodies, Subversion and editing the project. Using this method, users cannot change their own passwords.
Warning: If you are getting 301 errors saying "repository has been moved permanently to [some other url]", then check these things:
- Make sure that you haven't created your repository called "svn" or inside of a directory called "svn".
- Make sure you don't have .htaccess rules above the subversion directory that are causing any kind of re-write (like WordPress)
- This includes having Dreamhost automatically add 'www.' to your URL. In Domains -> Manage Domains, clicking on edit hosting, you have a choice with regards to "www". Selecting the 'Add WWW' option will result in a 301.
Troubleshooting: If you are getting weird errors and import or checkin is working for some but not all files, double check and try disabling your anti-virus software. See this post for more info http://old.nabble.com/Propfind-200-ok-error-td20063285.html
Warning: Repositories don't act like normal directories: You will not be able to use .htaccess files, cgi scripts, etc. in your repository directory. For instance, if you setup your repository at http://svn.example.com/, you will not be able to password protect that directory using .htaccess. You must use the Public/Private field in the Subversion panel page. Changes made in the Htaccess/WebDAV panel also do not apply to your SVN repository.
This also means you can't install ViewVC in the main repository directory. To work around this, put your repository in http://svn.example.com/svn/ and the ViewVC cgi in http://svn.example.com/. Remember, you'll need to use a .htaccess file to configure http://svn.example.com/, but the Public/Private field in the Subversion panel to protect http://svn.example.com/svn/.
Hastily-made repositories often don't work: If you create your repository before its intended host is fully created (and resolved), you may have an inaccessible repository. Assuming it doesn't yet contain any information (how could it?), just delete it and recreate it. (Alternatively, you may be experiencing a DNS propagation delay if you can access your repository via http within the DreamHost system, but see an empty directory from outside DreamHost [Apache 1.3x serving your empty domain]. If you can't wait, try querying the DH DNS servers for your IP and using a local hosts file or NetInfo to temporarily resolve your svn host. Remember to undo this when DNS records have propagated.)
Hosting more than one Subversion domain: You can host multiple svn domains and subdomains under one Dreamhost account, but they are not completely independent. In particular, all repositories created with the same FTP account share the same namespace, even if under different URLs. With a single FTP account, a given repository name can only be used once for all svn domains. If you create http://svn1.example.com/repo, you cannot have a second repository named http://svn2.example.com/repo. If you do configure http://svn2.example.com/repo, it will be a second name for the same repository, with a separate set of permissions. If you must create two repositories with the same name, create a second FTP user.
Hosting subversion for a domain that is not on Dreamhost: If you have a domain which is not hosted on Dreamhost and you want to set up Subversion on a subdomain of that domain, it will not work with a normal setup. Instead, you must set up a subdomain to a domain hosted on Dreamhost (e.g., realsvn.exampleOnDreamhost.com), then create a Dreamhost mirror to that domain from the domain you want (e.g., svn.exampleNOTonDreamhost.com). Make sure you wait for DNS propagation to occur before testing everything.
File Ownership Problems: On Dreamhost subversion runs as the dhapache user. If you create a file, it is owned by yourusername, not dhapache and subversion can't read it. It is pretty easy to have this happen. (For example, the backup feature of the popular emacs text editor will do it: to prevent this add (setq backup-by-copying t) to your .emacs file.) Once dhapache has lost ownership of the file, your repository becomes unmodifiable and your users will get "permission denied" errors when they try to commit.
If your repository becomes corrupted through bad ownership, try the following:
- Open DreamHost Subversion Control Panel
- Under "Actions" click "Edit" for the appropriate repository
- Add a new user and password (any will do...just make the pw non-guessable)
- Click "Update my repository now!"
In the process of adding a new user, the DreamHost job will recursively change file ownership for the whole repository back to dhapache.
Some have reported success just submitting an edit (with no changes) to their repository in the Control Panel. This operation recreates your reponame.access and reponame.passwd files re-establishing dhapache as their group (and undoing any MD5 passwords you've made manually). Unfortunately, this does nothing to fix your repository if the owner has been changed from dhapache to your username.
If neither of these work, you may have invoke the nuclear option: dump, recreate and reload your repository.
It would be nice if the Subversion Control Panel had an explicit option to fix file owners and groups directly with e.g. a script like this:
sudo chown -R dhapache ~/svn/reponame; sudo chgrp dhapache ~/svn/reponame.access ~/svn/reponame.passwd;
Another nice feature would be a Control Panel switch to allow passwords to be created and maintained with MD5 encryption.
Some clients require MD5 passwords: If you get "access denied" warnings, you may need to use MD5 passwords instead of the standard variety created by the DreamHost Control Panel. Use htpasswd -nm username to generate the entry (ala username:passwd-hash) for your reponame.passwd file. And use an editor (ala nano reponame.passwd) to replace your standard password entry.
Don't overwrite your reponame.access and reponame.passwd files with echo "username:passwd-hash" > reponame.passwd Overwriting the files will cause them to have your user's group instead of dhapache, leaving your repository in a read-only or inaccessible state.
Removing repositories through the control panel doesn't seem to remove the ~/svn/<repo-id> directory. (as of Apr 12 2006) Workaround:
cd ~/svn; mkdir old; mv <repo-id> old
You have the proper permissions to do this. (You can also use WebFTP to delete or rename the repository directory.)
Warning: It has been reported that DreamHost's "Extra Web Security" (Mod_security) can interfere with proper operation of Subversion on DreamHost servers. If you find that you are having trouble with checkouts, and a check of your error.log shows a "ModSecurity:" error, you can resolve this issue by disabling mod_security for your domain ("Edit" the "Web Hosting" setup in the "Domains -> Manage Domains" section of the panel and uncheck the "Extra Web Security" checkbox).
Connecting to Subversion Repository
Using svn+ssh
Allows for a svn client to connect directly with the repository via ssh.
You have to set up a ssh username and password. Subversion users defined in the panel will not be used for authentication.
note: {project} is the ID of your subversion project, NOT the projectname.
You should also check SSH#Passwordless_Login to use this mode without being asked for the password repeated times
See also SVN book for SSH tricks
Using HTTP
- Use the HTTP path that you used in the Subversion panel.
- Sign in using username and password specified in the panel.
- Is there any way for svn users to change their password in this mode? No. Only through panel.
- Is there any way to use https instead of http? Yes, but first you will need a unique IP address and Secure Server installed on your domain.
Using the Command Line (CLI)
- Locally (assuming your project is hosted on Dreamhost and can be accessed from your shell).
svn list file:///home/{user}/svn/{project}
svn list {projectURL}
- SSH Tunnel.
svn list svn+ssh://{email@example.com/home/{user}/svn/{project}
note: {project} is the ID of your subversion project, NOT the projectname, which can be found on the Subversion panel.
note: {projectURL} is the Project URL chosen by you on the Subversion panel.
How to use: quick reference
|The instructions provided in this article or section require shell access unless otherwise stated.
You can use the PuTTY client on Windows, or SSH on UNIX and UNIX-like systems such as Linux or Mac OS X.
Creating Repository via Command-Line
If you didn't use the Dreamhost Subversion Panel, you can create the repository at a directory. If you used the Quick Start method then skip this step and go to the next one.
svnadmin create /home/user/path/to/repository
Handmade repos are read-only (via http): If you find that you have to tweak and reload your dumpfile a few times, it can be handy to use the CLI tools (e.g. rm -rf and svnadmin create) to wipe and recreate your repository until you get it right. But then you'll want to use the Control Panel to delete and recreate your repository. Your test repositories will not function properly in production (they won't permit any changes).
The Panel creates the repository with dhapache as the owner, and the reponame.access and reponame.passwd files with dhapache as the group. Trying to create your own production repo with svnadmin create is futile because you don't have authorization to change those ownerships and group memberships (and you're not a sudoer).
Don't overwrite dhapache files: Don't overwrite your reponame.access and reponame.passwd files with echo "username:passwd-hash" > reponame.passwd (e.g. if you're trying to use MD5 passwords). Use an editor and paste in the new data. Overwriting the files will cause them to have your user's group instead of dhapache. If your repository is relatively mature when you make this mistake, and you have no backup, you will be out of options.
Importing Folders and Files
Once the repository is created you can add folders and files that you have in another location. It is better to use this method to keep the revisions number down when first creating the repository.
svn import /home/USER/path/to/source file:///home/USER/path/to/repository --message="Importing Project"
You have to put a message in and change the text inside to whatever you are doing at the time.
Loading a dumpfile
Sometimes, you would have an existing repository that you want to migrate to your Dreamhost svn repository. You will need to take a dump of your existing repository and load it into your Dreamhost repository.
- Dump your existing repository
svnadmin dump path-to-repo | gzip > dumpfile.gz
- Upload dumpfile.gz to your home directory.
- Load this into your repository.
- If you set up using the Dreamhost Subversion Panel, then the repository will be under the $HOME/svn/{repo-id} where the repo-id is the id you used to setup the repository in the panel. Decompress the dumpfile first.
gunzip -c home_dir/dumpfile.gz | svnadmin load svn/repository_id
Command should show all files being imported, if not then check the instructions and try again.
Using TortoiseSVN
TortoiseSVN is a Windows GUI integration program for svn. Use at your own risk, it is not officially supported.
Using HTTP
- Download the TortoiseSVN client from the official site
- Run the installer
- Create a folder somewhere and leave it empty. Any name and location on your own computer will do. A folder under My documents or on your desktop might be convenient.
- Open the context menu of the folder (by right clicking on it for example) and you will notice a few new items somewhere halfway the menu, in particular SVN Checkout... and TortoiseSVN which is a submenu.
- Choose SVN Checkout.... A new window called Checkout wil open.
- In the Repository section, fill out the URL of your repository. Don't forget to start with http://. For example : http://svn.mysite.com/myrepository/.
- You can immediately type the full path in your svn that you would like to check out or you can now click the button with the ... besides the URL field. This will let you browse the contents of your repository and choose a specific folder. It might take a minute to load.
- If you get a 405 error that says something about not having permission, you may have mistyped the URL for your repository and ended up on your regular webserver instead of inside the repository. If you have this problem repeatedly, use a command shell to do the checkout.
- Note that your repository is completely empty if you just created it. The repository browser allows you to create folders and move them around, but that's about it.
- The Checkout directory should already be filled in, there are two checkboxes (Only check out the top folder and Omit externals) which you should leave unchecked. If you just plan to have a simple repository you probably won't be needing them at all. Otherwise read about them in the TortoiseSVN help (folder context menu > TortoiseSVN submenu > Help).
- You may rename the local directory if you wish, but do not give it a name ending in .com (as suggested below for the server), as this can cause problems with some Windows security programs that flag the directory as an executable file.
- Leave Revision at HEAD revision for now. Go ahead and confirm this dialog with the OK button. You should now see a log screen and after a few seconds it should say complete at revision 0.
- At this point you can start working in the folder, if you already have a project you were working on just move it all into this folder.
- Now pull up the folder context menu and choose SVN Commit...
- This brings up a window where you can choose which files should be included in the SVN. If you're working with software and compiling things a lot of temporary files and binaries get generated that are absolutely not necessary since they can be easily regenerated from the source code. You should uncheck these to avoid needless traffic and storage usage.
Congratulations, at this point, you're in business! You can now make changes and commit them, revert if you want to undo (TortoiseSVN submenu) everything after the last commit and much more. The TortoiseSVN help is always available for more details.
Note that this method sends everything over the internet in cleartext, which may or may not be much of a problem to you.
Using an SSH tunnel
This walkthrough assumes username is myname, with a website at www.mysite.com, and that the repositories are in ~/svn starting with a project named myproject. You can choose your own directory names.
Step 1: Create the repository following the Repository section of this guide. Step 2: Download and install SVN client
Create Session Key
If you don't create the public session key, you will have to type your password in for every action in the browser and for every time TortoiseSVN connects to the server.
Start in your home directory
cd ~
Generate the key set using the passphrase of your choice and put the public key in a .ssh directory (note: the name "rsakey" isn't required)
Write down your passphrase as you will need it later.
ssh-keygen -b 1024 -t rsa -N SomeLongTextForPassphrase -f rsakey
Create the .ssh folder
mkdir .ssh
Move the public key inside of the folder and rename it.
mv rsakey.pub .ssh/authorized_keys
Change permissions on both the folder and file for security.
chmod 700 .ssh chmod 600 .ssh/authorized_keys
Download and install the Putty tools (scroll down to the Windows-style installer). This is an SSH client with authentication tools.
Download your "rsakey" file (your private key) from the server to your local machine (the rsakey should be in your home directory).
Use your Windows FTP client.
Load it into the PuTTYgen tool (puttygen.exe) and enter your passphrase when it asks for it.
Use SSH-2 (RSA) which will be the default.
Save it as a private key from PuTTYgen in a safe place as rsakey.ppk.
Setup New Session
- Run PuTTY Pageant. Pageant will put an icon of a computer wearing a hat into the System tray.
- Load a private key into it. Double click on the icon and then click on Private Key File.
- Type in the Passphrase.
- Run Putty and make a new session:
- Hostname: www.mysite.com
- Protocol: SSH
- Saved Sessions: mysiteSSH
- Connection->Data->auto-login username: myuser
- Connection->SSH->preferred protocol: 2
- Connection->SSH->Auth->private key file: path\to\rsakey.ppk
- Click "Save" on the sessions panel to save this config.
- Open PuTTY if you want to test your session. PuTTY will notice that Pageant is running, retrieve the key automatically from Pageant, and use it to authenticate. You can now open as many PuTTY sessions as you like without having to type your passphrase again. You may get a message saying, "The server's host key is not set in the registry." (Insert what this means here.)
- Now find your local project directory, and copy what you want to add to Subversion into a temporary directory (let's call it "ImportMe"), organizing it carefully -- it's smart to put your files in a "trunk" directory so that working with new branches and tags later is simple.
- Right-click on the ImportMe folder and select "Import..." from the TortoiseSVN submenu. You will be adding everything inside this folder into the root of the "myproject" repository.
- In the import dialog, enter the URL of Repository like this. Replace "mysiteSSH" with the name of your PuTTY stored session and "myusername" with your real username. If you just want a straight SSH tunnel, we'd use firstname.lastname@example.com here instead of mysiteSSH:
...and click "Okay". This will load your project files into the repository.
- Next, check out the files you want to work with into your project directory (but make sure you aren't overwriting files when you check out or you'll get errors). This is the "SVN Checkout..." option in the folder context menu.
Everything should be pretty self-explanatory from there on.
Other References
Guide from TortoiseSVN site (generate RSA key instead of DSA key).
- TortoiseSVN (1.1.3) - Go into Settings and enter TortoisePlink as the SSH client under the Network tab to connect to your repository. You can use svn+ssh://myusername@mysiteSSH/home/myusername/svn/myproject to specify your username directly in the URL. Along with Pageant for key-based authentication, using TortoiseSVN is very transparent and easy to use.
Also screen is getting over worked for overnight checkouts (yes overnight)
screen svn co &> ~/log_co & ^ad
Multiple User Access to Repository
(I have only tried this in a bundy shell, not externally (with TortoiseSVN, for example)
- Create at least two users (mysvnadmin, mysvnuser)
- Create the repository and import the project with mysvnuser.
- Login (ssh) to mysvnuser's account:
$ su mysvnuser $ svn co file:///home/mysvnadmin/repos/project work $ svn add file $ svn commit -m "added file" $ svn log r1 | mysvnadmin | 2005-09-04 08:03:47 -0700 (04 Sep 2005) | 1 line initial import r2 | mysvnuser | 2005-09-04 23:34:13 -0700 (04 Oct 2005) | 1 line added file
I had no trouble with svn+shh (on bundy):
$ svn co svn+ssh://firstname.lastname@example.com/home/mysvnadmin/repos/project work
Note: The mysvnadmin user must have "Enhanced Security" turned off in order to share data between the two users. There is a checkbox on the User setup screen (under Manage Users) that allows you to toggle enhanced security.
Using Apache basic authentication
The prior section's steps require each user to have a Unix account with shell access so they can log in via SSH.
However the Dreamhost panel provides a way to create user accounts only for Subversion.
But for those accounts, if you want to specify who has read vs read-write access and/or per-directory of your repository, you will need to manually edit the .access file as described in the latest Subversion manual on "Per-directory access control" and Dreamhost's implementation of this feature. You can manually add and administer the usernames and passwords for Subversion by using htpasswd to add/edit users to the .passwd file for your repository.
Note after manual editing either the .access or .passwd files,
- the file's group changes from dhapache to whatever the auto-generated group for your account is, which prevents the Apache module from being able to read the files, so you then need to change the permissions so that they can be read by Apache(do "chmod 644").
- You will also need to avoid else be prepared that if you now use the Dreamhost control panel to change settings (at least if you make changes to the user list), the panel will not only revert the file permissions back to dhapache but it will also overwrite both files, overwriting any changes you made to them, so you'd best have a backup to reconstruct anything important that might have gotten overwritten.
Note that "chmod 644" is giving "world" read access to those files which may be a security risk: while these files won't be accessible via http (unless you also publish your svn/ which would likely be unwise), these files would be accessible to other shell users to your account and MAYBE by other Dreamhost account holders on your shared host (though the parent directory is unreadable by the average user); however the passwords (in *.passwd) are hashed so someone would have to break the hash which is likely reasonably hard.
However one would put one's password (and data) at risk by using http to sniff the connection. Therefore, for real security, you should not use http, but instead https (which is also the only option if accessing via WebDAV) or SSH (by creating Unix accounts with SSH shell access as described above).
Using Subversion for Web development
Using Your Repository (via Command Line)
Now that you imported your files to the Repository, you might be wondering how to leverage version control to your advantage. First thing you need to do (if you haven't set it up already) is set up a Development area and a Live area. For the purposes of this HowTo, http://dev.yoursite.com/ will be our development area and http://www.yoursite.com will be the Live area.
1 ssh into your Dreamhost account. From your home directory, we'll be issuing the following commands. 'svn help' can be very useful.
2 Back-up your site
tar -cvvf yoursite.tar yoursite.com/
3 Check out your repository to your development area
svn checkout http://svn.yoursite.com/yourProject dev.yoursite.com
4 Check out your repository to your live area
svn checkout http://svn.yoursite.com/yourProject yoursite.com rm -rf yoursite.com mkdir yoursite.com svn checkout http://svn.yoursite.com/yourProject yoursite.com
Note: If the yoursite.com directory is the directory you initially imported from, you may get errors. I recommend starting from scratch (why I had you back up the site to begin with)
NOTE: These instructions are for use on the server. If you are using Windows for development, do not create a folder with a name ending in .com, as this can cause problems with some Windows security programs that flag the directory as an executable file.
Publishing from Dev to Live
All the changes you made in your Dev area are now ready to go Live.
1 Go to your dev directory
cd dev.yoursite.com
2 Commit your changes
svn commit -m "Your change log notes"
3 Go to your live directory
cd ~/yoursite.com
4 Update Live
svn update
Automatic Post-commit Checkout
Subversion can be a very useful tool for developing Web sites or Web-based applications. You may wonder, though, how that would work. After you commit your changes to your repository, how do you have them reflected on your site? The easiest method is to have your site's directory on the server be a working copy checked out from your Subversion repository. If you elect to do this be certain to modify your site's .htaccess to prevent users from browsing Subversion's control files. Something simple in the root of your site such as the following will suffice.
RedirectMatch 403 /\.svn
Additionally you can configure your site to automatically check out the current sources from your repository by using Subversion's "hook scripts". In short, the script called hooks/post-commit will be executed by the web server each time new sources are checked into your repository. Be advised that when the web server executes this script it is running in the security context of the dhapache user -- this user does not and should not (for security reasons) have the necessary permissions to modify the files in your web site's directory. As such we need to arrange for the post-commit script to run the update in the security context of a user with the privileges necessary to update your site.
Users familiar with UNIX systems will recognize that this is a task for a setuid binary. Unfortunately the DreamHost /home/ directories are NFS filesystems which are, for security reasons, mounted with setuid disabled. Fortunately the workaround is trivial -- simply set up your update script as a CGI script and have the Subversion post-commit hook invoke this script. Instructions follow.
1. Create a private directory on your website to host your updater script such as /home/username/mysite.com/cgi-bin/pri
1b. And set its permissions so that only the user has write access to it.
chmod 755 pri
2. Secure the private directory by creating a .htaccess file with contents similar to the following.
AuthName "Dialog prompt" AuthType Basic AuthUserFile /home/username/mysite.com/cgi-bin/pri/.htpasswd Require valid-user
3. Using the htpasswd utility create the .htpasswd file by running the following command in your /home/username/mysite.com/cgi-bin/pri directory. For security reasons make up a new username and password and do not re-use the username and password of a user you have created on your server or a user you have given access to your subversion repository.
htpasswd -bc .htpasswd someuser somepasswd
4. Now that you have created and secured a directory for this special CGI script to live in, create a script in that directory called do_update.cgi with the following contents.
#!/bin/sh set -f echo "Content-type: text/plain; charset=iso-8859-1" echo /usr/bin/svn update /home/username/mysite.com
4b. Don't forget to give execution privilege to your file. Only the user can have write access to it.
chmod 755 do_update.cgi
5. Finally, modify your /home/username/svn/projectname/hooks/post-commit to invoke your CGI script so your site will update after each commit.
#!/bin/bash wget --http-user=someuser --http-passwd=somepasswd -qO - http://mysite.com/cgi-bin/pri/do_update.cgi
5b. Don't forget to give execution privilege to your file. Again, only the user can have write access to it.
chmod 755 post-commit
Alternatively, if you run many subversion web projects, you could create a directory in your web space, and create CGI script to update each of them. For example, having all projects in http://mysite.com/projects/proyectname
For this, instead of using script in step 4, use this:
#!/bin/sh set -f echo "Content-type:text/plain; charset=iso-8859-1" USERNAME=someuser SITE=mysite.com PROJDIR=projects PROJ=`echo "$QUERY_STRING" | grep -oE "(^|[?&])project=[^&]+" | sed "s/%20/ /g" | cut -f 2 -d "="` export LC_CTYPE=en_US.UTF-8 # added for support of non-ascii file names echo "[Server $SITE] Updating: $PROJ in $PROJDIR" /usr/bin/svn update /home/$USERNAME/$SITE/$PROJDIR/$PROJ --username user --password pass 2>&1
and save it as svn_update.cgi. Remember to set permissions afterwards.
Then, instead of the script in step 5, use this:
#!/bin/bash wget --http-user=someuser --http-passwd=somepasswd -qO - http://mysite.com/cgi-bin/pri/svn_update.cgi?project=myproject
And specify a diferent 'myproject' at the end of the wget line of the script.
Upgrading to Newest Subversion
If you would like to install a newer version of subversion (e.g., for repository syncing), then you will need to go to this page
and download both the subversion-x.x.x.tar.bz2 and the subversion-deps-x.x.x.tar.bz2. The "deps" file contains all the subversion dependencies.
Compilation and Installation
Compiling subversion is pretty straightforward but you may encounter some compilation errors depending on the version. In general, follow these steps to compile and install subversion locally:
mkdir tmpwork cd tmpwork wget http://subversion.tigris.org/downloads/subversion-x.x.x.tar.bz2 wget http://subversion.tigris.org/downloads/subversion-deps-x.x.x.tar.bz2 tar -xjf subversion-x.x.x.tar.bz2 tar -xjf subversion-deps-x.x.x.tar.bz2 cd subversion-x.x.x ./configure --prefix=/home/{yourlogin} --with-ssl [See version specific config information below] make make install
That will install the new subversion into your user directory. You'll need to change the path to include your ~/bin directory to use the new binaries. To do that type this:
alias svn='/home/USERNAME/bin/svn'
For 1.5.6, a compilation error will occur if you use the above configure command:
relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
so when configuring use this:
./configure --prefix=/home/{yourlogin} --with-ssl --enable-shared
Just did an install with v1.6.6 and the standard configuration compiled fine.
You'll want to add the path to your installed version to both your .bash_profile and .bashrc
Be aware that if you upgrade your repository (svnadmin upgrade) to the 1.6 format, you will not be able to access it via http (use svn+ssh instead).
1.7.3 requires a few modifications, and is closer to this article: http://stackoverflow.com/questions/274656/building-subversion-1-5-4-on-debian-could-not-find-library-containing-rsa-new
The following script worked well on a VPS server (with a non-root user):
mkdir ~/download cd ~/download wget http://openssl.org/source/openssl-1.0.0g.tar.gz wget http://apache.ziply.com/subversion/subversion-1.7.3.tar.gz tar -xzvf openssl-1.0.0g.tar.gz tar -xzvf subversion-1.7.3.tar.gz cd openssl-1.0.0g ./config shared --prefix=$HOME && make clean && make && make install cd .. export CFLAGS="-O2 -g -I${HOME}/include" export LDFLAGS="-L${HOME}/lib" export CPP="gcc -E -I${HOME}/include" cd .. cd subversion-1.7.3 ./get-deps.sh cd neon ./configure --with-ssl=openssl --prefix=$HOME && make clean && make && make install cd .. ./configure --with-ssl --prefix=$HOME --with-neon=$HOME/bin/neon-config && make clean && make && make install
Now you should be all set with svn in $HOME/bin. Add "export PATH=~/bin:$PATH" to both .profile and .bashrc. .bashrc is important if you are doing svn+ssh.
Interfacing with Subversion from PHP
You'll need to install the PECL extension SVN. Detailed instructions are available here: http://hp.jpsband.org/xhtml-compiler/docs/compile-svn.txt
Setting up post commit emails
Using Post-commit.tmpl
- Load up ~/svn/(repository name)/hooks/post-commit.tmpl file in a text editor.
- Change /usr/lib/subversion/hook-scripts/commit-email.pl "$REPOS" "$REV" email@example.com to: /usr/lib/subversion/hook-scripts/commit-email.pl --from firstname.lastname@example.com "$REPOS" "$REV" firstname.lastname@example.com
- Save the file as post-commit (remove the 'tmpl' file extension). The new file should be owned by your user (NOT dhapache). Run chmod a+x post-commit to give the file world-executable permissions.
(Note: The --from section is crucial because the script will fail if it does not have a "from" address. Any e-mail address will do.)
Try a commit with your svn repository, and you should receive a commit notification e-mail.
Using Adam Doppelt's Ruby Script
A much more aesthetically pleasing script is also available here: Post-commit email in Ruby
- Copy the script (svn-email.rb) to: /your-svn-repository/hooks/svn-email.rb
- Load up the file in a text editor and change the line MODIFY_THIS@MODIFY_THIS.COM to an e-mail address like email@example.com
- Save the file
- Load up post-commit.tmpl in a text editor. Comment out (using the # symbol) the line: /usr/share/subversion/hook-scripts/commit-email.pl "$REPOS" "$REV" firstname.lastname@example.com
- Insert a line below like this: /home/your_username/svn/your-svn-repository-name/hooks/svn-email.rb "$REPOS" "$REV"
- Save the file as post-commit (remove the 'tmpl' file extension). The new file should be owned by your user (NOT dhapache). Run chmod a+x post-commit to give the file world-executable permissions.
Try a commit with your svn repository, and now you should have a very pretty html-based e-mail.
External Links
- New Official Site @ apache.org
- Nov 2009 press release re: Apache Incubator
- Previous official site @ tigris.org
Books and tutorials
- Version Control with Subversion is the Online Subversion book freely available online in its entirety. If you have shared hosting, focus on the file:// and svn+ssh:// protocols (which do not involve any actual continually running "server" processes that might not be good in a shared environment). If you have a dedicated hosting, you can do whatever you want I imagine.
GUI Integration
- Versions is a graphical Mac OS X application for managing Subversion repositories.
- Cornerstone is a graphical Mac OS X application for managing Subversion repositories.
- SCPlugin is a Finder contextual menu plugin for Mac OS X for subversion operations. Windows users will recognize it as the Mac analogue to TortoiseSVN.
- <oXygen/> SVN Client, now its own product at Syncro SVN Client , is a cross platform Subversion client; it includes a free 30-day trial and costs $59 as of 20090705.
- SvnX is an excellent GUI for Mac OS X.
- TortoiseSVN is a subversion client implemented as a Windows shell extension.
- RapidSVN Multi-platform GUI for Mac OS X, Linux, Windows.
- SVN Notifier is a tiny Windows application that sits on your taskbar tray and monitors the folders you specify so it can warn you when they need updates.
- Ankh SVN is a Visual Studio 2008 plugin (for Windows) to use Subversion as a source control provider.
Web-based repository browsers
These provide a number of convenient features, including RSS feeds, integrated bug tracking, collaborative documentation:
- Warehouse - Rails based
- Trac (Difficult Installation)
- ViewVC formerly ViewCVS official site, old site
- WebSVN - auto-tarball of directories, syntax highlighting - official site
- SVN::Web - on CPAN


text:
Rain possible Friday with high of 79
Published: Friday, April 19, 2013 at 12:30 a.m.
Last Modified: Thursday, April 18, 2013 at 11:55 p.m.
Today: Overcast with a chance of rain, then thunderstorms and a chance of rain in the afternoon. High of 79. Breezy. Winds from the SSW at 15 to 20 mph with gusts to 30 mph. Chance of rain 40 percent. Tonight: Overcast with thunderstorms and rain showers. Low of 55. Breezy. Winds from the SW at 15 to 20 mph. Chance of rain 100 percent with rainfall amounts near 1.2 inches possible.
For more local weather and live radar information, go to www.StarNewsOnline.com/weather.
Reader comments posted to this article may be published in our print edition. All rights reserved. This copyrighted material may not be re-published without permission. Links are encouraged.