Creating a policy based on # of lines of code written is probably not the best way to go about it.
You should have some sort of well defined plan of goals/sprints/stories/ whatever you want to call them. A good practice is to commit as frequent as your lowest level of definition. So if sprints are made up of goals, and stories are made up of sprints, commit every goal.
It is good practice, also, to only commit fully tested and working code. Especially if you are doing trunk development, the trunk should ALWAYS be 100% tested and stable. If you have buggy code, keep it local, or in a separate branch.
In the end, commiting because I wrote X lines of code shouldn't be used as a standard. While it does provide some sort of redundancy in case of data loss, it winds up cluttering your commit logs with unimportant progress marks. Did I mention every commit should have a comment? Imagine what comments would look like using a line# policy.
'I added int x=0; and reorganized the source code so its more readible'
If I were looking through the log trying to find how the project has progressed after my week of vacation, I'd have to sift through all of those useless code commits