Need to break up

So I have been with my bf on and off for just over a year. We argue almost constantly with a few very loving days in between. We had a very bad start and it's spiraled out from there. Our arguments are so repetitive always about mistakes I made in our first few months together. About old lies I told and how I hid some of my shameful past actions.

It's got to the point where I can't keep arguing with him and breaking up but not really and all that. I have tried breaking up with him many times but somehow I am dragged back in by promises that things will get better. But they haven't gotten any better. My classes are about to start again and he has been distancing himself from me understandable so he doesn't miss me and then he didn't want to talk for a few days because he upset himself again over things that happened a year ago. He reminds me often he will never trust me that I'm a liar and a hoe ect.

I know it might sound like an easy choice to just leave and not look back. But for a lot of reasons it's not that easy. He got me pregnant a few months ago but we decided not to keep it. Even though that situation is over I am still very connected to him and seeing him as the father of my future kids. Which is probably stupid of me. And just everything we have been through makes me want to tough it out and hope it gets better. I have a weird connection with him that I can't explain. Never loved someone the way I do him but also never felt so loved despite all the arguments.

I've already been through a year of arguing should I tough it out another year and hope it gets better? It has only ever gotten better temporarily before a new argument comes up.

What is the best way to cleanly break up with him? Should I do it over text and then block him or should I do it in person?