Gandhi's protests are a very valuable source of info on both violent and nonviolent protests. It's easy to talk about an armed or violent revolution. But it's not a decision to be taken very lightly. Apparently, both the sides of the American civil war went into it expecting it to somehow end in a few days! You know the carnage that followed. I have no clue why they held that belief. But it supports the fact that people almost always underestimate the cost of a war.
Non-violent protests are more effective at garnering support and mobilizing a huge movement. The human costs are also arguably lesser. I dont know if it's practical all the time. But it should be given a big chance if an opportunity exists.
Non violent resistance can be and has been crushed many times in history.
To win one needs to wield some kind of power or leverage. Non violence does not work if your adversary cannot be shamed by a moral high ground. It will achieve zilch in that case.